home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / dev / src / lightcyc.lha / LightCycle / Light Cycle V0_199.s < prev    next >
Text File  |  1997-01-12  |  60KB  |  3,382 lines

  1. ;TOSPJPKPJPKAAAABNOMAAAAJIJOAAAAENMJAAAAFPCFPPDMMGOPAAAACNBCPPDMMGOPAAAAOAGCAHIJAHDM
  2. ;Light Cycle
  3.  
  4. ;Menu for Light cycle start 92.08.25.
  5. ;version unknown
  6. ;ranking 4=
  7. ;Corpright by Real Destruction of R/THE/K now knows as Rafik
  8. ;Tricity Vitava 1992
  9.  
  10.  
  11. ;  Light Cicle V$0.01xx + Menu.
  12. ;
  13. ;         by
  14. ;
  15. ;       R.The.K.
  16. ;          of
  17. ;R E A L   D E S T R U C T I O N
  18. ;
  19. ;Vitava 1992.08.02
  20. ;Updates:
  21. ;1992.08.03    Keyboard, Add 1 Light Cycle, 5 Bipl
  22. ;1992.08.08    Other Analize
  23. ;1992.08.09    Kill only one
  24. ;1992.08.10    Correct Kill, Enter Restart
  25. ;1992.08.13     ? ? ?, Points
  26. ;1992.08.15    Kill points bug
  27. ;1992.08.22    Choose Control
  28. ;1992.08.25    Menu
  29. ;1992.09.11    23:40:00...,Better flash (with errors) [P.S. or not]
  30. ;1992.09.12    3Points
  31. ;1992.09.16    End when flash end
  32. ;1992.09.17    .pp ?
  33. ;1992.09.26    Color font menu
  34. ;1992.09.28    przerwania Creatu(o)ry(a) dolaczone ???
  35. ;1992.10.01    m - wlancza,wylancza muzyke, zycia,credits (wersja podstaw.)
  36. ;1992.10.02    Live, little corect
  37. ;1992.10.17    Tlo.itd.itp.xtd.atd.itp.... . .  .  .    .     .      .       .
  38. ;MCMXCII.X.XVIII ? ? ?
  39. ;1992.10.18    Zmiana miejsca przerwania
  40. ;1992.10.24    Zmiana spowrotem z 3 przerwaniem nie gasi stacji,Speed Enable
  41. ;               p pause and p continiue, no player, dol punkty
  42. ;1992.10.25
  43. ;1992.10.29    Track Disk Device (drive turn off wow!)
  44. ;1992.10.30    oblalem bramki na prawku, dopisuje jakies bzdury tzn poczatek
  45. ;        game over,przeniesione zycia i ich pojawianie sie
  46. ;        test komputerow itd.
  47. ;1992.11.06    contynuacja game over    (lenght 38280 83 86 88) 38396 38486
  48. ;1992.11.11    swieto wyzwolenia czegos tam, jasno-ciemno i ciemno-jasno
  49. ;        versia $12e-$13d Game_over_seq:
  50. ;1992.11.23    18 zdalem prawko !!!!,password dorzucony, ok 607lini efecty
  51. ;1992.11.24    sciemnianie do menu
  52. ;1992.11.26    * ? ! ? * -do not
  53. ;1992.12.04    * ? ! ? * -next d.n.
  54. ;1992.12.23,24    >extern,test przezycia (czy player O_K_Alive
  55. ;        divs facked up, fast error correct,cut something
  56. ;        left shift=no vertical
  57. ;1993.01.03    Lea Copper(pc)
  58. ;1993.01.04    Ciekawe ile bede mial 2 ???,load level,grettings,some error in
  59. ;        alive ???,!!! CHECK THIS !!!
  60. ;????.??.??    alive ok!
  61. ;1993.02.17    hi score dorzucone. hi_score_p: |wyzej|
  62. ;1993.05.16    optimize,optymize,... 163-188 z 63000-59914.17.20
  63. ;        to macro jest chore
  64. ;1993.07.22    Jak ja dawno tego nie ogladalem,
  65. ;1994.08.12    Jestem na studiach, ile to czasu mineîo, z Aniâ wszystko
  66. ;        skoïczone.. ostre poprawki, moûe mnie zatrudniâ a Iridin?
  67. ;        184»1a4
  68. ;  96.04.17    Teraz z Angelikâ wszystko skoïczone:(, co to k. jest iridin?
  69. ;      dorzucam klawisze spod low level library
  70.  
  71. ;Checked to xxx line
  72. ;wykopac a5 z controls !
  73. ;stanolem na 580 credits table: !!
  74.  
  75. ;UWAGA PRZERABIAM NA xx(a5)
  76. ;Cos nie tak z pas table ?
  77.  
  78. ;lowlevel
  79. _AddKBInt:    equ    -$3c
  80. _RemKBInt:    equ    -$42
  81.  
  82.     incdir    dh1:sources/
  83.     include    macra.s
  84.  
  85. ;            INCDIR    'df0:'
  86.             INCDIR    'dh1:Sources/LightCycle/'
  87.  
  88. MUSIC=1
  89. KEYTEST=1
  90. SAVE=1
  91.  
  92. Wysokosc:    equ    8    ;Wys fontow
  93.  
  94.     IFEQ    SAVE
  95. *    *    *    *    *    *    *    *    *
  96. Tlo2        equ    $155000
  97.     >extern    'tlo2+.pic',Tlo2    ;$a098
  98. Fonts        equ    tlo2+$a098
  99.     >extern    'slp2.fnt',Fonts    ;$300
  100. mt_data        equ    $130000
  101. *    >extern    'mod.voice from rv-125',mt_data ;141654 $22956
  102.     >extern    'mod.soviet dog',mt_data    ;131304 $200e8
  103.     ENDIF
  104.  
  105. *******************************************************************************
  106. *                    MACRO                      *
  107. *******************************************************************************
  108. CALLB:    MACRO
  109.     MOVEL    \2
  110.     CALL    \1
  111.     ENDM
  112.  
  113. *******************************************************************************
  114. *                    PROGRAM                      *
  115. *******************************************************************************
  116.  
  117.  
  118.     Section    TheProgram,Code_C
  119.  
  120.  *****
  121. *        t             t
  122.  *****  ttt  aa   r r ttt
  123.       *  t  a  a   r   t
  124. ******   t   aaaa  r   t
  125. Start:
  126.  
  127.     lea    DosName(pc),a1
  128.     EXEC
  129.     CALL    OldOpenLibrary
  130.     move.l    d0,DosBase
  131.     beq.w    ExitNow
  132.  
  133.     move.l    4.w,a6
  134.     lea    lowlevelname,a1
  135.     CALL    OldOpenLibrary
  136.     ml    d0,lowlevelbase
  137.     beq.w    CloseDos
  138.  
  139.     ml    d0,a6
  140.     sub.l    a1,a1
  141.     lea    KeyboardInt,a0
  142.     CALL    AddKBInt
  143.     ml    d0,inthandle
  144.     beq.w    CloseLibrary
  145.  
  146.     bsr    StartIrq    ;muzyka w przerwaniach
  147.     lea    $dff000,a5
  148.  
  149.     bsr    TrackDiskDevice
  150. ;menu
  151.     lea    BitplanAdres+2,a0
  152.     move.l    #Ekran,d2
  153.     moveq    #4,d0        ;Ilosc bitplanow
  154.     bsr    Copp_Loop
  155.  
  156. ;gra
  157.     lea    BitplanADR+2,a0
  158.     move.l    #Ekran,d2    ;Ekran gry
  159.     moveq    #5,d0        ;Ilosc Bitplanow
  160.     bsr    Copp_Loop
  161.  
  162.     lea    Tlo2+$30,a0    ; z obrazka do Copper Listy !!!!
  163.     lea    ScreenMinColor(pc),a1
  164.     moveq    #16,d2    ;Ilosc Colorow
  165.     bsr    DoColor
  166.  
  167.     bsr    Fonty
  168.  
  169.     VERTICAL $100
  170.  
  171.     bsr    copy_tlo
  172.  
  173.     lea    Copper,a0
  174.     move.l    a0,$80(a5)
  175.  
  176.     bsr    CJM
  177.  
  178. ;Texty przed startem
  179.  
  180.     moveq    #0,d0
  181.  
  182.     moveq    #3,d6
  183.     move.l    #100,d5
  184. War_Loop:
  185.     lea    WarningText(pc),a0
  186.     bsr    WyswietlText
  187.     move.l    d5,d0
  188.     bsr    Wait_a_m
  189.  
  190.     bsr    JCM
  191. ;>>
  192.     bra.s    TheMenu
  193. ;>>
  194.     move.l    d5,d0
  195.     asr.l    #2,d0
  196.     bsr    Wait_a_m
  197.     subq    #1,d6
  198.     bne.s    War_Loop
  199.  
  200.  
  201.     moveq    #25,d0
  202.     bsr    Wait_a_m
  203.  
  204.     bsr    copy_tlo
  205.  
  206.     lea    GwiazdkaThings,a0
  207.     bsr    WyswietlText
  208.     moveq    #100,d0
  209.     bsr    Wait_a_m
  210.  
  211.     moveq    #25,d0
  212.     bsr    Wait_a_m
  213.  
  214.     bsr    JCM
  215.  
  216.  
  217.                  * * * * * * * * * * * * * * * * *
  218. *       *
  219. * *   * *
  220. *   *   *
  221. *       *
  222. *       *enu    ;;
  223. TheMenu:
  224.     bsr    copy_tlo
  225.     lea    MenuText(pc),a0        ;Menu Text
  226.     bsr    WyswietlText
  227.     lea    Copper,a0
  228.     move.l    a0,$80(a5)
  229.     bsr    CJM
  230.  
  231. Mouse:
  232.     VERTICAL $100
  233.  
  234.     bsr    ReadKey
  235.  
  236.     btst    #6,$bfe001        ;LMB = Start Game
  237.     beq.w    ChST
  238.  
  239.     btst    #10,$dff016
  240.     beq.w    The_Real_End_of_The_Game
  241.  
  242.     btst    #7,$bfe001        ;Joy Fire = Start Game
  243.     beq.s    ChST
  244.  
  245. ;    moveq    #%1,d0
  246. ;    bsr    Czytaj
  247.  
  248.     cmp.b    #$75,d0        ; ESC = Exit Game
  249.     beq    The_Real_End_of_The_Game
  250.     cmp.b    #$45,d0        ; * = Exit Game
  251.     beq    The_Real_End_of_The_Game
  252.  
  253.     cmp.b    #$5f,d0        ;F1 - Control One
  254.     bne.s    CheckTwo
  255.     bsr    ControlsOne
  256.     bra.s    TheMenu
  257. CheckTwo:
  258.     cmp.b    #$5d,d0        ;F2 - Control Two
  259.     bne.s    CheckThree
  260.     bsr    ControlsTwo
  261.     bra.w    TheMenu
  262. CheckThree:
  263.     cmp.b    #$5b,d0        ;F3 - Control Three
  264.     bne.s    CheckHi
  265.     bsr    ControlsThree
  266.     bra.w    TheMenu
  267. CheckHi:
  268.     cmp.b    #$59,d0        ;F4 - Hi Score
  269.     bne.s    CheckCode
  270.     bsr    JCM
  271.     move    #1,MenuEnter
  272.     bsr    hi_score_p    ;<NOT AT ALL>
  273.     bra    TheMenu
  274. CheckCode:
  275.     cmp.b    #$57,d0        ;F5 - Password
  276.     bne.s    CheckCredits
  277.     bsr    Password
  278.     bra    TheMenu
  279. CheckCredits:
  280.     cmp.b    #$55,d0        ;F6 - Credits
  281.     bne.s    Check_Start
  282.     bsr    Credits        ;wersja podstawowa
  283.     bra    TheMenu
  284. Check_Start:
  285.     cmp.b    #$4d,d0        ;F10 - Start
  286.     bne.s    ContCheck
  287. ChST:
  288.     bsr    Init_Game    ;Start Game
  289.     bra    TheMenu    ;powrot do menu
  290. ContCheck:
  291.     bra    Mouse
  292.                  * * * * * * * * * * * * * * * * *
  293. ControlsOne:
  294.     lea    Player1_Rgame(pc),a3
  295.     lea    PlayerOne(pc),a4
  296.     moveq    #$000f,d0
  297.     bra.s    ChangeControl
  298. ControlsTwo:
  299.     lea    Player2_Rgame(pc),a3
  300.     lea    PlayerTwo(pc),a4
  301.     move    #$00f0,d0
  302.     bra.s    ChangeControl
  303. ControlsThree:
  304.     lea    Player3_Rgame(pc),a3
  305.     lea    PlayerThree(pc),a4
  306.     move    #$0f00,d0
  307.  
  308. ChangeControl:
  309.     bsr    JCM
  310. ChangeContr:
  311.     bsr    copy_tlo
  312.  
  313.     lea    ControlText(pc),a0
  314.     bsr    WyswietlText
  315.     bsr    CJM
  316.  
  317. contr
  318.     VERTICAL $100
  319.     VERTICAL $101
  320.     bsr    ReadKey
  321.  
  322. *    moveq    #0,d0        ;LMB and Fire not akcept
  323. *    bsr    Czytaj
  324.     cmp.b    #$5f,d0        ;F1 - Joy port 1
  325.     bne.s    C_f2
  326.     move    #%0010,(a4)
  327.     bra.s    Change_Control_End
  328. C_f2:
  329.     cmp.b    #$5d,d0        ;F2 - Joy port 0
  330.     bne.s    C_f3
  331.     move    #%0001,(a4)
  332.     bra.s    Change_Control_End
  333. C_f3:
  334.     cmp.b    #$5b,d0        ;F3 - Keyboard
  335.     bne.s    C_f4
  336.     move    #%0100,(a4)
  337.     bra.s    Change_Control_End
  338. C_f4:
  339.     cmp.b    #$59,d0        ;F4 - Computer
  340.     bne.s    C_f5
  341.     move    #%1000,(a4)
  342.     bra    Change_Control_End
  343. C_f5:
  344. *    cmp.b    #$57,d0        ;F5 - RedefineKeys *dont work
  345. *    bne.s    C_F6
  346. *    move    #%0100,(a4)    ;Keyboard
  347. *    bsr    RedefineKeys
  348. *    bra    Change_Control_End
  349. C_f6:                ;F6 - No Player
  350.     cmp.b    #$55,d0
  351.     bne.s    C_f7
  352.     bsr    JCM
  353.     move    #0,(a3)        ;player nie gra i juz
  354.     rts
  355.  
  356. C_f7:                ; nothing at now
  357.     bra.s    contr
  358. Change_Control_End:    ;if you change somthing here,change in c_f6 too.!
  359.     bsr    JCM
  360.     move    #1,(a3)
  361.     rts
  362.  
  363. *RedefineKeys:
  364. *    rts
  365.  
  366.  *****               *  *  *
  367. *                    *    *** ****
  368. *      * **  *     ***  *  *   **
  369. *       *   * *   *  *  *  *     *
  370.  *****  *    **** ***** *  *  ***
  371.  
  372. Credits:    ;wersja podstawowa !
  373.  
  374. ;a gdyby to przerobic ?? ok!
  375.  
  376.     lea    CreditsTable(pc),a3
  377. creditsloop
  378.     bsr    JCM ;d0-d6 a0
  379.     bsr    copy_tlo    ;a0,a1,d0,d1
  380.     tst.l    (a3)
  381.     bne.s    noecr
  382.     rts
  383. noecr
  384.     move.l    (a3)+,a0
  385.     bsr    WyswietlText ;d0,a0,a1,a2
  386.     bsr    CJM ;d3-d5 a0-a1
  387.     bsr    czekay    ;d0
  388.  
  389.     bra.s    creditsloop
  390.  
  391. CreditsTable:
  392.  dc.l CreditsText0,CreditsText1,CreditsText2,CreditsText3,CreditsText4
  393.  dc.l 0
  394.  
  395. ;Password by R.The.K./R.D. for Light Cycle
  396. ;Wersion unknown
  397. ;Rozpoznaje kody klawiszy. WOW !
  398. ;                 R E A L   D E S T R U C T I O N
  399. Password:
  400.     bsr    JCM
  401.  
  402. WaitKey:
  403.     clr.b    Key
  404.     IFNE    KEYTEST
  405. .1    tst.b    Key
  406.     beq.s    .1
  407.     ENDIF
  408.     rts
  409. ReadKey:
  410.     IFNE    KEYTEST
  411.     move.b    $bfec01,d0
  412.     ELSE
  413.     moveq    #0,d0
  414.     ENDIF
  415.     rts
  416. Ppass:
  417.     bsr    WaitKey
  418.  
  419.     bsr    copy_tlo
  420.  
  421.     lea    Text(pc),a0
  422.     bsr    WyswietlText
  423.  
  424.     bsr    CJM
  425.     move.l    #p_text+6,Password_Adr
  426.  
  427. Loop_P:
  428.     btst    #6,$bfe001
  429.     beq    End
  430. Loop2:
  431.     cmp.b    #$ff,6(a5)
  432.     bne.s    Loop2
  433.  
  434. Ttest:
  435.     btst    #6,$bfe001
  436.     beq    End
  437.  
  438.     bsr    ReadKey
  439.  
  440.     lea    Table,a0
  441.     tst.b    $60(a0)
  442.     bne.s    .shift
  443.     tst.b    $61(a0)
  444.     bne.s    .shift
  445. ;czyôê shifta
  446.     clr.b    Shift
  447.     bra.s    .nies
  448. .shift
  449.     st    Shift
  450. .nies
  451.  
  452. ;Enter and Return
  453.     cmp.b    #$79,d0    ;enter
  454.     beq.s    Yes_Password
  455.  
  456.     cmp.b    #$77,d0    ;return
  457.     bne.s    No_Password
  458. Yes_Password:
  459.     bra.s    Check_Password
  460. No_Password:
  461. ;Del
  462.     cmp.b    #$7d,d0    ;del
  463.     bne.s    lb_0
  464.     tst    PasswordNr
  465.     beq.s    lb_0
  466.     subq    #1,PasswordNr
  467.     subq.l    #1,Password_Adr
  468.     move.l    Password_Adr,a0
  469.     move.b    #'_',(a0)+
  470.     move.b    #'_',(a0)
  471. lb_0
  472.     btst    #0,$bfec01 ;?
  473.     beq    Loop_P
  474.  
  475.     move.b    #0,$bfec01
  476.     bsr    Search    ;szuka i wrzuca litere
  477.  
  478.     lea    p_text(pc),a0            ;Text
  479.     bsr    WyswietlText
  480.  
  481.     bra    Loop_P
  482.  
  483.  **** *             *
  484. *     *             *
  485. *     ***   *    ** * *
  486. *     *  * * *  *   **
  487.  **** *  *  ***  ** * * Password
  488. Check_Password:
  489.     lea    Password_Table(pc),a1
  490.     moveq    #0,d2    ;password nr
  491.     moveq    #0,d1
  492.  
  493. Pas_next:
  494.     lea    6+p_text(pc),a0
  495.     moveq    #12,d0    ;ile liter
  496. Chc_Next:
  497.     move.b    (a0)+,d1
  498.     cmp.b    (a1),d1
  499.     beq.s    f1o
  500.  
  501.     add.b    #32,d1
  502.     cmp.b    (a1),d1 ;duze dla malych liter
  503.     beq.s    f1o
  504.  
  505.     sub.b    #64,d1
  506.     cmp.b    (a1),d1 ; i male dla duzych liter
  507.     bne.s    NextPassword
  508. f1o:
  509.     addq.l    #1,a1
  510.     subq    #1,d0
  511.     bne.s    Chc_Next
  512. ;chaslo znalezione
  513.     move    #$fff,$180(a5)
  514.     bsr.s    Czysc_password
  515.     move    d2,Password_NR ;do rozpoznania ktory password
  516.     bsr    Password_Effect ;niektore daja natychmiastowe efekty
  517.     rts ;powrot do menu
  518.  
  519. NextPassword:
  520.     addq    #1,d2
  521.     cmp    #ilosc_chasel,d2    ;ilosc hasel
  522.     bne.s    nolastpas
  523. ;koniec chasel
  524.     move    #$600,$180(a5) ;niema takigo passwordu
  525.     bsr.s    Czysc_password
  526.     bsr    JCM
  527.     rts ;powrot do menu
  528.  
  529. nolastpas
  530.     move.l    d2,d1
  531.     muls    #12,d1
  532.     lea    Password_Table(pc),a1
  533.     add.l    d1,a1
  534.     bra.s    Pas_next
  535.  
  536. Czysc_password:
  537.     move.l    #p_text+6,Password_Adr
  538.     move    #0,PasswordNr
  539.     lea    6+p_text(pc),a0
  540.     moveq    #12-1,d0
  541. liniuj:
  542.     move.b    #'_',(a0)+
  543.     dbf    d0,liniuj
  544.     rts
  545.  
  546.  ****                         *
  547. *                             *
  548.  ****   *    **    * **  ***  ***
  549.      * * *  *  *    *   *     *  *
  550. *****   ***  *****  *    ***  *  *
  551.  
  552. Search:
  553.     tst.b    Shift    ;1wcisniety 0puszczony
  554.     beq.s    No_Shift
  555.     lea    Shift_Table(pc),a0
  556.     bra.s    Ok_Ok_Cont
  557. No_Shift:
  558.     lea    No_Shift_Table(pc),a0
  559. Ok_Ok_Cont:
  560.     moveq    #0,d1    ;' '
  561. Szukaj:
  562.     cmp.b    (a0)+,d0
  563.     beq.s    Found
  564.     addq.l    #1,a0
  565.     addq    #1,d1
  566.     cmp    #90,d1    ;za 'z'+troche znaczkow
  567.     bne.s    Szukaj
  568.     rts
  569. Found:
  570.     move.l    Password_Adr(pc),a1
  571.     addq    #1,PasswordNr
  572.     cmp    #12,PasswordNr
  573.     bne.s    Nie_caly_Pasw
  574.     move    #11,PasswordNr
  575.     subq.l    #1,Password_Adr
  576. Nie_caly_Pasw:
  577.     addq.l    #1,Password_Adr
  578.     move.b    (a0),(a1)
  579.     rts
  580. czekay: ;czeka az puscisz lub fire,mouse
  581.     btst    #0,$bfec01
  582.     bne.s    czekay
  583.     move.b    $bfec01,d0
  584. czek:
  585.     btst    #7,$bfe001 ;joy fire
  586.     beq.s    ecze
  587.     btst    #6,$bfe001 ;lmb
  588.     beq.s    ecze
  589.     cmp.b    $bfec01,d0
  590.     beq.s    czek
  591. ecze    rts
  592.  
  593. Password_Effect:
  594.     bsr.w    JCM
  595.     bsr.w    copy_tlo
  596. p0:
  597.     move.w    Password_NR(pc),d0
  598.     add.w    d0,d0
  599.     add.w    d0,d0
  600.     move.l    PassTable(pc,d0.w),a0
  601.     cmp.l    #0,a0
  602. ;    tst.l    a0
  603.     beq.s    Jeszcze_niema
  604.     bsr    WyswietlText
  605.     bsr.w    CJM
  606.     bsr    czekay
  607.     bsr.w    JCM
  608.     rts
  609. Jeszcze_niema:
  610.     bsr.w    CJM
  611.     move    #$f00,$180(a5)
  612.     bsr.w    JCM
  613.     rts
  614.  
  615. PassTable: dc.l AlienTXT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT,EmptyT
  616.  dc.l EmptyT,EmptyT,EmptyT,mtvTXT,LockyTXT,0,0,0,0,0,0
  617.  dc.l PillarTXT,0,KaneTXT,CreatTXT,0,0
  618.  
  619. ***** ***** *    * *****
  620.   *   *     *    *   *
  621.   *   ***    ****    *
  622.   *   *     *    *   *
  623.   *   ***** *    *   *
  624.  
  625.  
  626. ***
  627. WyswietlText:        ;a0 text
  628. ***
  629.     btst    #14,2(a5)
  630.     bne.s    WyswietlText    ;?
  631.  
  632.     moveq    #0,d0    ;just clear
  633.     lea    Ekran+$50,a1    ;pojawienie sie fontow
  634. OffsetC:
  635.     moveq    #0,d0
  636.     move.b    (a0)+,d0
  637.     bne.s    SameLine
  638.     move.b    (a0)+,d0
  639.     bne.s    noe
  640.     rts
  641. noe
  642.     lea    Ekran+$50,a1    ;pojawienie sie fontow
  643.     muls    #4*40,d0
  644.     add.l    d0,a1
  645.     bra.s    OffsetC
  646. SameLine:
  647.     sub.b    #$20,d0            ;right character
  648.     add.w    d0,d0
  649.     add.w    d0,d0
  650.     move.l    FontADR(pc,d0.w),a2        ;odczyt odresu fonta
  651. BitP4:
  652.     moveq    #21-1,d0        ;wysokosc
  653. Copy:
  654.     move.w    (a2),(a1)    ;copiowanie na ekran
  655.     lea    40(a2),a2
  656.     lea    40(a1),a1
  657.     move.w    (a2),(a1)
  658.     lea    3*40(a2),a2
  659.     lea    3*40(a1),a1
  660.     dbf    d0,Copy
  661.     lea    [-21*4*40+2](a1),a1
  662.  
  663.     bra.s    OffsetC
  664. FontADR:
  665.         blk.l    100,0
  666.  
  667. BlitterClear:
  668.     WAITBLITTER
  669.  
  670.     move.l    a0,$50(a5)        ;BLTAPT
  671.     move.l    #$01000000,$40(a5)    ;BLTCON0 d=a
  672.     move.l    #$00000000,$64(a5)        ;BLTAMOD
  673.     move.w    #[255*64*3]+[320/16],$58(a5)    ;BLTSIZE
  674.  
  675.     rts
  676.  
  677.  ****
  678. *
  679. *
  680.  **** -opy tlo
  681.  
  682. ;a0,a1,d0,d1
  683. copy_tlo:
  684.     lea    Ekran,a1
  685.     lea    Tlo2+152,a0
  686.     move.w    #256-1,d0    ;ilosc lini
  687. Linia_Loop:
  688.     moveq    #80/4-1,d1
  689. Linia_s_l:    move.l    (a0)+,(a1)+
  690.     dbf    d1,Linia_s_l
  691.  
  692.     lea    80(a0),a0
  693.  
  694.     moveq    #80/4-1,d1
  695. Czysc_dwie_linie:
  696.     move.l    #0,(a1)+
  697.     dbf    d1,Czysc_dwie_linie
  698.  
  699.     dbf    d0,Linia_Loop
  700.     rts
  701.  
  702. ********
  703. *      *
  704. * ******
  705. *   ****
  706. * ******
  707. *      *
  708. ********nd    ;;
  709. The_Real_End_of_The_Game:
  710.     btst    #14,$dff002
  711.     bne.s    The_Real_End_of_The_Game
  712.  
  713.     bsr.w    JCM
  714.  
  715.     bsr    StopIrq    ;muzyka w przerwaniach
  716.  
  717.  
  718.                 endprog:
  719.  
  720.     bsr    FreeMem
  721.  
  722.     IFNE    MUSIC
  723.     jsr    mt_end
  724.     ENDIF
  725.  
  726.     lea    Gfxname(pc),a1
  727.     CALL    OldOpenLibrary
  728.     beq.s    Error
  729.     move.l    d0,a1
  730.     move.l    38(a1),$dff080
  731.     jsr    -414(a6)    ;closelibrary
  732.  
  733.  
  734.     ml    lowlevelbase(pc),a6
  735.     ml    inthandle(pc),a1
  736.     CALL    RemKBInt
  737.  
  738. CloseLibrary:
  739.     ml    4.w,a6
  740.     ml    lowlevelbase(pc),a1
  741.     CALL    CloseLibrary
  742.  
  743. CloseDos:
  744.     EXEC
  745.     move.l    DosBase,a1
  746.     CALL    CloseLibrary
  747.  
  748. ExitNow:    ;cant even open a dos!
  749.     moveq    #0,d0
  750. Error:    rts
  751.  
  752. Wait_a_moment:
  753.     move.w    #400-1,d1
  754. Wait_a_m:
  755.     VERTICAL $100
  756.     VERTICAL $101
  757.  
  758.     btst    #6,$bfe001
  759.     bne.s    .1
  760.     btst    #7,$bfe001
  761.     bne.s    .1
  762.  
  763.     dbf    d1,Wait_a_m
  764. .1
  765.     moveq    #0,d0
  766.     rts
  767.  
  768. Copp_Loop:
  769.     move.l    d2,d1
  770.     swap    d1
  771.     move.w    d1,(a0)
  772.     addq.l    #4,a0
  773.     move.l    d2,d1
  774.     add.l    #40,d2        ;Adr nast Bitpl.
  775.     move.w    d1,(a0)
  776.     addq.l    #4,a0
  777.  
  778.     subq.b    #1,d0            ;Pentla
  779.     bne.s    Copp_Loop
  780.     rts
  781.  
  782. ;Przerzuca colory z ifa do Copper listy !
  783. ;by Thestruction of De R.K.
  784. ;Vitava 1992.08.04.
  785. ;a0-adres colorow w iffie
  786. ;a1-gdzie wrzucac w copper liscie
  787. ;d2-ilosc kolorow
  788.  
  789. DoColor:            ;Przerzuca Colory
  790.  
  791.     move.w    #$180,d3    ;kolor startowy
  792. DoCol:    moveq    #3-1,d1
  793.     moveq    #0,d0        ;Clear
  794. DoColor3Loop:
  795.     move.b    (a0)+,d4
  796.     ror.b    #4,d4
  797.     add.b    d4,d0
  798.     rol.w    #4,d0
  799.     dbra    d1,DoColor3Loop
  800.     ror.w    #4,d0
  801.     move.w    d3,(a1)+
  802.     move.w    d0,(a1)+
  803.     addq.w    #2,d3
  804.     subq.b    #1,d2
  805.     bne.s    DoCol
  806.     rts
  807. ;robi tabele adresow fontow
  808. Fonty:
  809.     lea    FontADR(pc),a1
  810.     lea    Tlo2+152+80,a0        ;pentla dla adresow fontow
  811.     moveq    #100,d0            ;ilosc fontow
  812. cmp1:    moveq    #20,d1        ;ile w lini
  813. CMP:
  814.     move.l    a0,(a1)+
  815.     addq.l    #2,a0
  816.     subq.b    #1,d0
  817.     beq.s    .ok
  818.     subq.b    #1,d1
  819.     bne.s    CMP
  820.     add.l    #[21*40*4]-40,a0
  821.     bra.s    cmp1
  822. .ok    rts
  823.  
  824. ScreenMinColor:
  825.     blk.l    16*2,0
  826.  
  827. *    *
  828. *    *
  829. *    *
  830. ******
  831. *    *
  832. *    *
  833. *    * i Score
  834.  
  835. **********************************
  836. ;Password metamorphoses to hiscore. . .
  837. ;                 R E A L   D E S T R U C T I O N
  838.  
  839. hhhhh    dc.l    0    ;***********
  840.  
  841. hi_score_p:
  842.     btst    #0,$bfec01    ;pusc klawisz cholero
  843.     bne.s    hi_score_p
  844.  
  845.     bsr    JCM
  846.  
  847.     bsr    copy_tlo
  848.  
  849.     tst.w    MenuEnter    ;wejscie z menu
  850.     bne    Move_HI
  851.  
  852.     lea    Enter_T(pc),a0
  853.     bsr.w    WyswietlText
  854.     bsr    CJM
  855.  
  856.     lea    HighScoreData(pc),a0
  857.     move.l    hhhhh,d0
  858.     moveq    #1,d1
  859. szk    cmp.l    (a0),d0
  860.     bpl    okioki
  861.     lea    16(a0),a0
  862.     addq.w    #1,d1
  863.     cmp.w    #10,d1
  864.     bne    szk
  865. ;gowno nie wlazlez do hi score
  866.     bra    Move_HI
  867. okioki
  868.     cmp.w    #10,d1
  869.     bne    no10
  870.     move.b    #'1',Enter_T+2
  871.     move.b    #'0',Enter_T+3
  872.     bra    d10z
  873. no10    add.w    #'0',d1
  874.     move.b    d1,Enter_T+3
  875. d10z
  876.     move.l    #Enter_T+5,Password_Adr
  877.     lea    17+Enter_T(pc),a0
  878.     move.l    hhhhh,d0
  879.     bsr    Przelicz_ty_
  880.  
  881.     lea    Enter_T(pc),a0
  882.     bsr.w    WyswietlText
  883.  
  884.     moveq    #0,d0
  885. LoopX
  886.     VERTICAL $100
  887.  
  888.     cmp.b    #63,$bfec01
  889.     bne.s    NL_S    ;wcisniety !
  890.     move.b    #1,Shift
  891. NL_S
  892.     cmp.b    #61,$bfec01
  893.     bne.s    NP_S    ;wcisniety !
  894.     move.b    #1,Shift    ;1 wcisniety
  895. NP_S:
  896.     cmp.b    #62,$bfec01
  897.     bne.s    NL_SW    ;wycisniety
  898.     move.b    #0,Shift
  899. NL_SW:
  900.     cmp.b    #60,$bfec01
  901.     bne.s    NP_SW    ;wycisniety
  902.     move.b    #0,Shift    ;0 puszczony
  903. NP_SW:
  904.  
  905. ;Enter and Return
  906.     cmp.b    #$77,$bfec01    ;return
  907.     beq.s    Enter_hi
  908.     cmp.b    #$79,$bfec01    ;enter
  909.     beq.s    Enter_hi
  910.  
  911. ;Del
  912.     cmp.b    #$7d,$bfec01
  913.     bne.s    ol2
  914.     cmp.w    #0,PasswordNr
  915.     beq.s    ol2
  916.     subq.w    #1,PasswordNr
  917.     subq.l    #1,Password_Adr
  918.     move.l    Password_Adr,a0
  919.     move.b    #' ',(a0)+
  920.     move.b    #' ',(a0)
  921. ol2:
  922.     btst    #0,$bfec01
  923.     beq.w    LoopX
  924.     move.b    $bfec01,d0
  925.     move.b    #0,$bfec01
  926.     bsr.w    Search2    ;szuka i wrzuca litere
  927.  
  928.     lea    Enter_T(pc),a0
  929.     bsr.w    WyswietlText
  930.  
  931.     bra.w    LoopX
  932.  
  933. Enter_hi
  934.     bsr    JCM
  935.     bsr    copy_tlo
  936.     lea    HighScoreData(pc),a1
  937.     move.l    hhhhh,d0
  938.     moveq    #1,d1
  939. ksz    cmp.l    (a1),d0
  940.     bpl    The_place
  941.     lea    16(a1),a1
  942.     addq.w    #1,d1
  943.     bra    ksz
  944.  
  945. The_place
  946.     moveq    #10,d2
  947.     sub.w    d1,d2
  948. ;    subq.w    #1,d2
  949.     lea    EndHii(pc),a2
  950.     lea    16+EndHii(pc),a3
  951. ujii0    moveq    #16-1,d3
  952. ujii    move.b    -(a2),-(a3)
  953.     dbf    d3,ujii
  954.     dbf    d2,ujii0
  955.  
  956.     move.l    d0,(a1)+    ;Wrzuca punkty
  957.     lea    5+Enter_T(pc),a0
  958.     move.b    (a0)+,(a1)+    ;przerzuca do hi score <podstawowego
  959.     move.b    (a0)+,(a1)+
  960.     move.b    (a0)+,(a1)+
  961.     move.b    (a0)+,(a1)+
  962.     move.b    (a0)+,(a1)+
  963.     move.b    (a0)+,(a1)+
  964.     move.b    (a0)+,(a1)+
  965.     move.b    (a0)+,(a1)+
  966.     move.b    (a0)+,(a1)+
  967.     move.b    (a0)+,(a1)+
  968.     move.b    (a0)+,(a1)+
  969.  
  970.  
  971. Move_HI
  972.     move.w    #0,MenuEnter
  973.     lea    4+OnePla(pc),a1
  974.     lea    4+HighScoreData(pc),a0
  975.     moveq    #10-1,d0
  976. copnij                ;zmienia format do wyswietlenia
  977.     move.b    (a0)+,(a1)+
  978.     move.b    (a0)+,(a1)+
  979.     move.b    (a0)+,(a1)+
  980.     move.b    (a0)+,(a1)+
  981.     move.b    (a0)+,(a1)+
  982.     move.b    (a0)+,(a1)+
  983.     move.b    (a0)+,(a1)+
  984.     move.b    (a0)+,(a1)+
  985.     move.b    (a0)+,(a1)+
  986.     move.b    (a0)+,(a1)+
  987.     move.b    (a0)+,(a1)+
  988.     addq.l    #5,a0    ;punkty olac
  989.     lea    11(a1),a1
  990.     dbf    d0,copnij
  991.  
  992.     lea    OnePla+16,a0
  993.     lea    HighScoreData,a1
  994.     moveq    #10-1,d1
  995. ilscor
  996.     move.l    (a1),d0
  997.     lea    16(a1),a1
  998.     bsr    Przelicz_ty_
  999.     lea    22(a0),a0    ;???
  1000.  
  1001.     dbf    d1,ilscor
  1002.  
  1003.     lea    Hi_Text(pc),a0
  1004.     bsr    WyswietlText
  1005.  
  1006.     bsr    CJM
  1007.  
  1008.     move.b    #0,$bfec01
  1009.  
  1010. .1    tst.b    $bfec01
  1011.     bne.s    rreettss
  1012.     btst    #6,$bfe001
  1013.     bne    .1
  1014. rreettss
  1015.     bsr    JCM
  1016.     rts
  1017.  
  1018. ;dzies
  1019. ;wescie:
  1020. ;    a0 gdze wrzucac liczbe w asci
  1021. ;    d0 liczba
  1022. Przelicz_ty_
  1023.     movem.l    d0-d2/a0-a1,-(sp)
  1024.     lea    Dzes,a1    ;tabela dziesiatek (wykopanie divsa
  1025.     moveq    #0,d2
  1026.     move.l    (a1)+,d1
  1027. L_00
  1028.     move.l    (a1)+,d1
  1029.     beq    nomore_tears
  1030.  
  1031. .1    cmp.l    d1,d0
  1032.     blt.s    l_02        ;Gdy mniejszy
  1033.     sub.l    d1,d0
  1034.     addq.b    #1,d2
  1035.     bra.s    .1
  1036. l_02
  1037.     move.b    d2,(a0)+    ;Wrzutka liczby
  1038.     moveq    #0,d2
  1039.     bra.s    L_00
  1040. nomore_tears
  1041.     sub.l    #5,a0
  1042.     add.b    #$30,(a0)+    ;?'0'=$30
  1043.     add.b    #$30,(a0)+
  1044.     add.b    #$30,(a0)+
  1045.     add.b    #$30,(a0)+
  1046.     add.b    #$30,(a0)+
  1047.     movem.l    (sp)+,d0-d2/a0-a1
  1048.     rts
  1049.  
  1050. Enter_T:
  1051.     dc.b    0
  1052.     dc.b    200,' 1.            00000',0
  1053.     even
  1054.     dc.w    0
  1055. Hi_Text:    ;'                    '
  1056. ;11 na nazwe
  1057.     dc.b    0
  1058.     dc.b   3,'     <Hi Score>',0
  1059. OnePla    dc.b  30,' 1.                 ',0 ;reszta zostanie wrzucona
  1060.     dc.b  52,' 2.                 ',0
  1061.     dc.b  74,' 3.                 ',0
  1062.     dc.b  96,' 4.                 ',0
  1063.     dc.b 118,' 5.                 ',0
  1064.     dc.b 140,' 6.                 ',0
  1065.     dc.b 162,' 7.                 ',0
  1066.     dc.b 184,' 8.                 ',0
  1067.     dc.b 208,' 9.                 ',0
  1068.     dc.b 230,'10.                 ',0
  1069.     even
  1070.  
  1071. ;format zapisu dlugie slowo punkty potem 12 znakow nazwy [12 nie uzywany]
  1072. ;razem 16 bajtow
  1073. ;hiscore
  1074. HighScoreData:
  1075.  dc.l    10000
  1076.  dc.b '  Gfx by:   '    ;1
  1077.  dc.l    9999
  1078.  dc.b '  Slepper   '    ;2
  1079.  dc.l    7500
  1080.  dc.b ' Music by:  '    ;3
  1081.  dc.l    8756
  1082.  dc.b '  BFA/SCT   '    ;4
  1083.  dc.l    8576
  1084.  dc.b '  Dr.Stool  '    ;5
  1085.  dc.l    2222
  1086.  dc.b ' Code by:   '    ;6
  1087.  dc.l    2221
  1088.  dc.b 'Rafik/rdst  '    ;7
  1089.  dc.l    342
  1090.  dc.b '   Real     '    ;8
  1091.  dc.l    111
  1092.  dc.b 'Destruction '    ;9
  1093.  dc.l    5
  1094.  dc.b 'Prod 1992-6 '    ;10
  1095. EndHii
  1096.  blk.b    20,0
  1097.  
  1098.  
  1099. Search2:
  1100.     tst.b    Shift    ;1wcisniety 0puszczony
  1101.     beq.s    No_Shift2
  1102.     lea    Shift_Table(pc),a0
  1103.     bra.s    Ok_Ok_Cont2
  1104. No_Shift2:
  1105.     lea    No_Shift_Table(pc),a0
  1106. Ok_Ok_Cont2:
  1107.     move.b    d0,Szukaj2+3
  1108.     moveq    #0,d1    ;' '
  1109. Szukaj2:
  1110.     cmp.b    #$00,(a0)+
  1111.     beq.s    Found2
  1112.     addq.l    #1,a0
  1113.     addq.w    #1,d1
  1114.     cmp.w    #68,d1    ;za 'z'
  1115.     bne.s    Szukaj2
  1116.     rts
  1117. Found2:
  1118.     move.l    Password_Adr,a1
  1119.     addq.w    #1,PasswordNr
  1120.     cmp.w    #11,PasswordNr        ;ilosc znakow
  1121.     bne.s    Niecalywpis
  1122.     move.w    #10,PasswordNr
  1123.     subq.l    #1,Password_Adr
  1124. Niecalywpis:
  1125.     addq.l    #1,Password_Adr
  1126.     move.b    (a0),(a1)
  1127.     rts
  1128.  
  1129. **********************************
  1130.  
  1131.  
  1132.  
  1133. *    *      *    *    *****          *
  1134. *    *  **  **  ***   *     *  *  ** *    **
  1135. *    * *  * * *  *    *     *  * *   *   * *
  1136. **** *  *** * *  *    *****  ***  **  **  ****
  1137.           *                    *
  1138.         ***                 ****
  1139.  
  1140. ;ZROBIC LEVELY !!!!
  1141. Loadit:
  1142.     MOVEL    Dos
  1143.     moveq    #0,d0
  1144.     move.l    #1005,d2
  1145.     move.l    d5,d1
  1146. *    move.l    #FileName,d1
  1147.     jsr    -30(a6)    ;open file
  1148.     beq.w    Load_Error
  1149.     move.l    d0,Handle
  1150.     bsr    Seek
  1151.     move.l    d0,FileSize
  1152.     beq.w    Error
  1153. ;    bsr.s    AllocMem
  1154.  
  1155.     moveq    #0,d0
  1156.     move.l    Handle(pc),d1
  1157.     move.l    #LoadAdr,d2    ;gdzie ladowac
  1158.     move.l    FileSize(pc),d3
  1159.     CALL    Read
  1160.     cmp.w    #-1,d0
  1161.     beq.w    Error
  1162.     moveq    #0,d0
  1163.     move.l    Handle(pc),d1
  1164.     jsr    -36(a6)    ;close File
  1165.  
  1166. ;    bsr    FreeMem
  1167.  
  1168.     lea    LoadAdr,a0    ;skad brac dane
  1169.     lea    Iff,a1        ;gdzie dekompresowac
  1170.     move.l    FileSize(pc),d0
  1171.     bsr    Power_Packer
  1172.     rts
  1173. JumpLevel
  1174.     bra    Level0
  1175.     bra    Level1
  1176.     bra    Level2
  1177.     bra    Level3
  1178.     bra    Level4
  1179.     bra    Level5
  1180.     bra    Level6
  1181.     bra    Level7
  1182.     bra    Level8
  1183.     bra    Level9
  1184.     bra    Level10
  1185.  
  1186. Level0
  1187.     lea    Lev0Text,a0
  1188.     bsr    WyswietlText
  1189.     move.w    #2,Speed_tm
  1190.     move.l    #Level0_FM,d5
  1191. *    %0001    Prawo
  1192. *    %0010    Lewo
  1193. *    %0100    Dol
  1194. *    %1000    Gora
  1195.     move.w    #%0100,Lev_LastRuch1
  1196.     move.l    #$340056,Lev_PosX1
  1197.     move.w    #%0010,Lev_LastRuch2
  1198.     move.l    #$1050026,Lev_PosX2
  1199.     move.w    #%1000,lev_LastRuch3
  1200.     move.l    #$890076,Lev_PosX3
  1201.     rts
  1202. Level1
  1203.     lea    Lev0Text,a0
  1204.     bsr    WyswietlText
  1205.     move.w    #2,Speed_tm
  1206.     move.l    #Level1_FM,d5
  1207.     rts
  1208. Level2
  1209.     lea    Lev0Text,a0
  1210.     bsr    WyswietlText
  1211.     move.w    #2,Speed_tm
  1212.     move.l    #Level2_FM,d5
  1213.     rts
  1214. Level3
  1215.     lea    Lev0Text,a0
  1216.     bsr    WyswietlText
  1217.     move.w    #2,Speed_tm
  1218.     move.l    #Level3_FM,d5
  1219.     rts
  1220. Level4
  1221.     lea    Lev0Text,a0
  1222.     bsr    WyswietlText
  1223.     move.w    #2,Speed_tm
  1224.     move.l    #Level4_FM,d5
  1225.     rts
  1226. Level5
  1227.     lea    Lev0Text,a0
  1228.     bsr    WyswietlText
  1229.     move.w    #2,Speed_tm
  1230.     move.l    #Level5_FM,d5
  1231.     rts
  1232. Level6
  1233.     lea    Lev0Text,a0
  1234.     bsr    WyswietlText
  1235.     move.w    #1,Speed_tm
  1236.     move.l    #Level6_FM,d5
  1237.     rts
  1238. Level7
  1239.     lea    Lev0Text,a0
  1240.     bsr    WyswietlText
  1241.     move.w    #1,Speed_tm
  1242.     move.l    #Level7_FM,d5
  1243.     rts
  1244. Level8
  1245.     lea    Lev0Text(pc),a0
  1246.     bsr    WyswietlText
  1247.     move.w    #1,Speed_tm
  1248.     move.l    #Level8_FM,d5
  1249.     rts
  1250. Level9
  1251.     lea    Lev0Text,a0
  1252.     bsr    WyswietlText
  1253.     move.w    #1,Speed_tm
  1254.     move.l    #Level9_FM,d5
  1255.     rts
  1256. Level10
  1257.     lea    Lev0Text,a0
  1258.     bsr    WyswietlText
  1259.     move.w    #2,Speed_tm
  1260.     move.l    #Level10_FM,d5
  1261.     rts
  1262. Load_Error
  1263.     move.w    #$fff,$dff180
  1264.     move.w    #$f00,$dff180
  1265.     move.w    #$0f0,$dff180
  1266.     move.w    #$00f,$dff180
  1267.     move.w    #$000,$dff180
  1268.     btst    #6,$bfe001
  1269.     bne    Load_Error
  1270.     rts
  1271.  
  1272. Init_Game
  1273.     bsr.w    JCM
  1274.  
  1275.     lea    GameScreenColor,a0    ;ZMIENIC !
  1276.     bsr.w    Czysc_Colory    ;(32)
  1277.  
  1278. ;    lea    Points_Color,a0    ;ZMIENIC !
  1279. ;    bsr.w    Czysc_Colory    ;(32)
  1280.  
  1281.     move.w    Player1_Rgame,Player1_game
  1282.     move.w    Player2_Rgame,Player2_game
  1283.     move.w    Player3_Rgame,Player3_game
  1284.  
  1285.     move.l    #0,PunktyPierwszego
  1286.     move.l    #0,PunktyDrugiego
  1287.     move.l    #0,PunktyTrzeciego
  1288.  
  1289.     move.w    #4,Live1    ;zycia
  1290.     move.w    #4,Live2
  1291.     move.w    #4,Live3
  1292.  
  1293. ;    move.w    PlayerOne_M,PlayerOne
  1294. ;    move.w    PlayerTwo_M,PlayerTwo
  1295. ;    move.w    PlayerThree_M,PlayerThree
  1296.  
  1297. Start_Game:
  1298.     bsr.w    JCM
  1299.     bsr    copy_tlo
  1300.     moveq    #0,d0
  1301.     lea    JumpLevel(pc),a0
  1302.     move.w    Level(pc),d0
  1303.     add.w    d0,d0
  1304.     add.w    d0,d0
  1305.     add.l    d0,a0
  1306.     jsr    (a0)
  1307.     movem.l    d0-a6,-(a7)
  1308.     bsr    CJM
  1309.     movem.l    (a7)+,d0-a6
  1310.     bsr.w    Loadit
  1311.     jsr    TrackDiskDevice
  1312.     bsr    JCM
  1313.  
  1314.     lea    GameCopper,a0
  1315.     move.l    a0,$dff080
  1316.  
  1317. GameLoop:
  1318.  
  1319.     move.w    #0,Crash    ;ilosc wyeliminowanych
  1320.  
  1321.  
  1322.     lea    Iff+$30,a0    ; z obrazka do Copper Listy !!!!
  1323.     lea    MintimeColor,a1    ;dla jasno-ciemno
  1324. ;    lea    GameScreenColor,a1
  1325.     move.l    #32,d2    ;Ilosc Colorow
  1326.     bsr    DoColor
  1327.  
  1328.  
  1329.     move.w    #0,LFlash1
  1330.     move.w    #0,LFlash2
  1331.     move.w    #0,LFlash3
  1332.  
  1333.     tst.w    Player1_game
  1334.     beq.s    NoPlayer1_game
  1335.     move.l    Lev_PosX1,PosX
  1336.     bra.s    Player1_game_on
  1337. NoPlayer1_game:
  1338.     move.l    #0,PosX
  1339.  
  1340. Player1_game_on:
  1341.     tst.w    Player2_game
  1342.     beq.s    NoPlayer2_game
  1343.     move.l    Lev_PosX2,PosX2
  1344.     bra.s    Player2_game_on
  1345. NoPlayer2_game:
  1346.     move.l    #0,PosX2
  1347.  
  1348. Player2_game_on:
  1349.     tst.w    Player3_game
  1350.     beq.s    NoPlayer3_game
  1351.     move.l    Lev_PosX3,PosX3
  1352.     bra.s    Player3_game_on
  1353. NoPlayer3_game:
  1354.     move.l    #0,PosX3
  1355.  
  1356. Player3_game_on:
  1357.     lea    Iff+$98,a0    ;skad kopiowac
  1358.     lea    Ekran,a1    ;gdzie kopiowac
  1359.  
  1360. ;    move.l    #256,d0        ;ilosc lini do skopiowania
  1361.  
  1362. .2                    ;Z 5 Bitpl robi 5
  1363.     move.w    #256*5*40/4-1,d1
  1364. .1    move.l    (a0)+,(a1)+
  1365.     dbra    d1,.1
  1366.  
  1367. ;    dbf    d0,.2
  1368.  
  1369.     lea    GameCopper,a0
  1370.     move.l    a0,$dff080
  1371.  
  1372.     lea    Ekran+$bd11,a1    ;zycia pierwszego
  1373.     move.w    Live1,d1
  1374.     bsr.w    Next_Znaczek
  1375.  
  1376.     lea    Ekran+$bd1e,a1    ;zycia drugiego
  1377.     move.w    Live2,d1
  1378.     bsr.w    Next_Znaczek
  1379.  
  1380.     lea    Ekran+$bd2b,a1    ;i trzeciego
  1381.     move.w    Live3,d1
  1382.     bsr.w    Next_Znaczek
  1383.  
  1384.     bsr.w    Ciemno_Jasno    ;ROZASNIA OBRAZ
  1385.  
  1386. *     **    **   ***
  1387. *    *  *  *  *  *  *
  1388. *    *  *  *  *  ***
  1389. ****  **    **   *
  1390. Loop:
  1391.  
  1392.     lea    Ekran+$bd17,a1        ;Adr. Ekranu
  1393.     move.l    PunktyPierwszego,d0
  1394.     bsr    Points
  1395.  
  1396.     lea    Ekran+$bd24,a1        ;Adr. Ekranu
  1397.     move.l    PunktyDrugiego,d0
  1398.     bsr    Points
  1399.  
  1400.     lea    Ekran+$bd31,a1        ;Adr. Ekranu
  1401.     move.l    PunktyTrzeciego,d0
  1402.     bsr    Points
  1403.  
  1404. ;zycia przeniesiono na koniec tercji search for 'pokaz_zycia_tm'
  1405.  
  1406.     lea    Table,a0
  1407.  
  1408.             tst.b    $19(a0)
  1409.         beq.s    no_Pause
  1410. Pause:
  1411.             tst.b    $19(a0)    ;a0 table p=pause
  1412.         bne.s    Pause
  1413. .p2            tst.b    $19(a0)
  1414.         beq.s    .p2
  1415. .p3            tst.b    $19(a0)
  1416.         bne.s    .p3
  1417. no_Pause:
  1418.         tst.b    $61(a0)            ;Prawy Shift=Restart
  1419.     bne    T_T_Te_st
  1420.         btst    #6,$bfe001        ;LMB or Fire Port0
  1421.     beq.w    End
  1422.         tst.b    $40(a0)            ;Space=End
  1423.     bne    End
  1424.  
  1425. *Pierwszy
  1426.     move.w    PosX,d0
  1427.     bne.s    OneDo
  1428.     move.w    PosY,d1
  1429.     beq.s    Drugi
  1430. OneDo:
  1431.     move.w    PosY,d1
  1432.     move.w    LastRuch,d4
  1433.     move.w    PlayerOne,d2
  1434.     bsr    Ruch
  1435.  
  1436.     move.w    d4,LastRuch
  1437.     move.w    d0,PosX
  1438.     move.w    d1,PosY
  1439.  
  1440. Drugi:
  1441.     move.w    PosX2,d0
  1442.     bne.s    DoDrugi
  1443.     move.w    PosY2,d1
  1444.     beq.s    Trzeci
  1445. DoDrugi:
  1446.     move.w    PosY2,d1
  1447.     move.w    PlayerTwo,d2
  1448.     move.w    LastRuch2,d4
  1449.  
  1450.     bsr    Ruch
  1451.  
  1452.     move.w    d4,LastRuch2
  1453.     move.w    d0,PosX2
  1454.     move.w    d1,PosY2
  1455.  
  1456. Trzeci:
  1457.     move.w    PosX3,d0
  1458.     bne.s    DoTrzeci
  1459.     move.w    PosY3,d1
  1460.     beq.w    End_All_Do
  1461. DoTrzeci:
  1462.     move.w    PosY3,d1
  1463.     move.w    PlayerThree,d2
  1464.     move.w    LastRuch3,d4
  1465.  
  1466.      bsr.w    Ruch
  1467.  
  1468.     move.w    d4,LastRuch3
  1469.     move.w    d0,PosX3
  1470.     move.w    d1,PosY3
  1471.  
  1472.  
  1473. End_All_Do:
  1474.     tst.b    Table+$60
  1475.     bne.s    Ultra_Speed    ;left shift=no vertical
  1476.  
  1477.     cmp    #1,Speed_tm ;1-fast
  1478.     bne.s    FSO126
  1479.     not    opz
  1480.     beq.s    Ultra_Speed
  1481. FSO126
  1482.     tst.w    Speed_tm    ;0 no vertical
  1483.     beq.s    Ultra_Speed    ;1 fast    (1 frame
  1484.                 ;2 normal (2 frames
  1485.     VERTICAL    $ff
  1486. Fast_Speed:
  1487.     VERTICAL    $100
  1488.  
  1489. Ultra_Speed:
  1490.  
  1491. **************
  1492. *PierwszyPlot*
  1493. **************
  1494.  
  1495.     move.w    PosX,d0        ;pozyzja x
  1496.     bne.s    DoOne
  1497.     move.w    PosY,d1        ;jezeli obie zero to olewa
  1498.     beq.s    Czysto1
  1499. DoOne:
  1500.     add.l    #1,PunktyPierwszego    ;punkty
  1501.     move.w    PosY,d1        ;pozycja y
  1502.     move.l    #2*40,d3    ;od ktorego bitplanu zaczynac
  1503.     bsr    Plot
  1504.     beq.s    Czysto1        ;jezeli nie zero to przeszkoda
  1505.  
  1506.     move.w    PlayerOne,d2
  1507.     btst    #3,d2
  1508.     beq.s    PierwszyBang
  1509.  
  1510. ;PierwszyComputer:
  1511.     move.w    LastRuch,d4
  1512.     bsr    ComputerMove
  1513.     bne.s    PierwszyBang
  1514.     move.w    d4,LastRuch
  1515.     move.w    d0,PosX
  1516.     move.w    d1,PosY
  1517.     bra.s    Czysto1
  1518. PierwszyBang:
  1519.     bsr    RunFlash1
  1520.     bra.w    Czysto1
  1521.  
  1522. ***********
  1523. *DrugiPlot*
  1524. ***********
  1525.  
  1526. Czysto1:
  1527.     move.w    PosX2,d0
  1528.     bne.s    DoTwo
  1529.     move.w    PosY2,d1
  1530.     beq.s    Czysto2
  1531. DoTwo:
  1532.     add.l    #1,PunktyDrugiego    ;punkty
  1533.     move.w    PosY2,d1
  1534.     move.l    #3*40,d3
  1535.     bsr    Plot
  1536.  
  1537.     beq.s    Czysto2
  1538.     move.w    PlayerTwo,d2
  1539.     btst    #3,d2
  1540.     beq.s    DrugiBang
  1541.  
  1542. ;DrugiComputer:
  1543.     move.w    LastRuch2,d4
  1544.     bsr    ComputerMove
  1545.     beq.s    TfoTfo
  1546. DrugiBang:
  1547.     bsr    RunFlash2
  1548.     bra.s    Czysto2
  1549. TfoTfo:
  1550.     move.w    d4,LastRuch2
  1551.     move.w    d0,PosX2
  1552.     move.w    d1,PosY2
  1553.  
  1554. *************
  1555. *Trzeci Plot*
  1556. *************
  1557.  
  1558. Czysto2:
  1559.  
  1560.     move.w    PosX3,d0
  1561.     bne.s    DoThree
  1562.     move.w    PosY3,d1
  1563.     beq.s    EndOfCicle
  1564. DoThree:
  1565.     add.l    #1,PunktyTrzeciego    ;punkty
  1566.     move.w    PosY3,d1
  1567.     move.l    #4*40,d3
  1568.     bsr    Plot
  1569.  
  1570.     beq.s    EndOfCicle
  1571.     move.w    PlayerThree,d2
  1572.     btst    #3,d2
  1573.     beq.s    TrzeciBang
  1574.  
  1575. ;TrzeciComputer:
  1576.     move.w    LastRuch3,d4
  1577.     bsr    ComputerMove2
  1578.     beq.w    TfoThere
  1579. TrzeciBang:
  1580.     bsr    RunFlash3
  1581.     bra.s    EndOfCicle
  1582. TfoThere:
  1583.     move.w    d4,LastRuch3
  1584.     move.w    d0,PosX3
  1585.     move.w    d1,PosY3
  1586.  
  1587. EndOfCicle:
  1588.     move.w    LFlash1,d0    ;czy pierwszy player miga ?
  1589.     beq.w    TestFlash2
  1590.  
  1591.     lea    GameScreenColor+18,a0    ;Colory w copper l.
  1592.     lea    Iff+$98+80,a1        ;do kopiowania obrazka
  1593.     lea    Ekran++80,a2        ; to tez
  1594.     move.w    Flash_1_loop,d1        ;penlta kolorow
  1595.     move.w    Flash_1_I_Loop,d2    ;pentla dodawan i odej
  1596.     move.w    Flash_Color_1,d3    ;co dodawac i co odejmowac
  1597.     bsr    Flash
  1598.     beq.s    NieCrashc1
  1599.     move.w    #1,Crash_in_LevelP1
  1600.  
  1601. NieCrashc1:
  1602.     move.w    d0,LFlash1    ;jezeli<>to miganie
  1603.     move.w    d1,Flash_1_loop
  1604.     move.w    d2,Flash_1_I_Loop
  1605.     move.w    d3,Flash_Color_1
  1606.  
  1607. TestFlash2:
  1608.     move.w    LFlash2,d0
  1609.     beq.w    TestFlash3
  1610.  
  1611.     lea    GameScreenColor+34,a0
  1612.     lea    Iff+$98+120,a1
  1613.     lea    Ekran+120,a2
  1614.     move.w    Flash_2_loop,d1
  1615.     move.w    Flash_2_I_Loop,d2
  1616.     move.w    Flash_Color_2,d3
  1617.     bsr    Flash
  1618.     beq.s    NieCrashc2
  1619.     move.w    #1,Crash_in_LevelP2
  1620. NieCrashc2:
  1621.     move.w    d0,LFlash2
  1622.     move.w    d1,Flash_2_loop
  1623.     move.w    d2,Flash_2_I_Loop
  1624.     move.w    d3,Flash_Color_2
  1625.  
  1626. TestFlash3:
  1627.     move.w    LFlash3,d0
  1628.     beq.w    Test_Flash_End
  1629.     lea    GameScreenColor+66,a0
  1630.     lea    Iff+$98+160,a1
  1631.     lea    Ekran+160,a2
  1632.     move.w    Flash_3_loop,d1
  1633.     move.w    Flash_3_I_Loop,d2
  1634.     move.w    Flash_Color_3,d3
  1635.     bsr    Flash
  1636.     beq.s    NieCrashc3
  1637.     move.w    #1,Crash_in_LevelP3
  1638. NieCrashc3:
  1639.     move.w    d0,LFlash3
  1640.     move.w    d1,Flash_3_loop
  1641.     move.w    d2,Flash_3_I_Loop
  1642.     move.w    d3,Flash_Color_3
  1643. Test_Flash_End:
  1644.  
  1645.     tst.w    LFlash1
  1646.     bne.w    Loop
  1647.     tst.w    LFlash2
  1648.     bne.w    Loop
  1649.     tst.w    LFlash3
  1650.     bne.w    Loop
  1651.  
  1652.     moveq    #0,d0
  1653.  
  1654.     tst.w    Player1_game    ;czy nie wylaczony
  1655.     bne.s    x_X_x
  1656.     addq.w    #1,d0
  1657. x_X_x:    tst.w    Player2_game
  1658.     bne.s    x_Y_x
  1659.     addq.w    #1,d0
  1660. x_Y_x:    tst.w    Player3_game
  1661.     bne.s    x_Z_x
  1662.     addq.w    #1,d0
  1663. x_Z_x:
  1664.     cmp.b    #3,d0 ;ilosc wylaczonych jezeli 2 lub trzech to se nie pograsz.
  1665.     beq    Game_over_seq
  1666.     cmp.b    #2,d0
  1667.     beq    Game_over_seq
  1668.  
  1669.     add.w    Crash,d0
  1670.     cmp.w    #2,d0        ;Ilosc wyeliminiwanych !
  1671.     blt.w    Loop
  1672. *    bne    T_T_Te_st    ?
  1673.  
  1674. T_T_Te_st:
  1675.  
  1676.  ***
  1677. *
  1678. * **
  1679. *  *
  1680. *** owno'tm
  1681.     tst.w    Crash_in_LevelP1    ;jezeli sie zniszczysz
  1682.     beq.s    NoNoSubLive1        ;to po skoniczeniu innych graczy
  1683.     sub.w    #1,Live1        ;odejmuje zycia
  1684. NoNoSubLive1:
  1685.     tst.w    Live1
  1686.     bne.s    Ne_1
  1687.     btst    #3,PlayerOne+1
  1688.     bne.s    computery_nie_gina_1    ;jezeli gra computer to traci punkty.
  1689.  
  1690.     move.l    PunktyPierwszego,Player1_to_High    ;dla hi score
  1691.     move.w    #1,Game_Over_Player_1
  1692.     move.w    #%1000,PlayerOne    ;jezeli zginoles to na twoje miejsce
  1693. *    move.w    #0,Player1_game        ;wchodzi komputer
  1694. computery_nie_gina_1:
  1695.     move.w    #4,Live1
  1696.     move.l    #0,PunktyPierwszego
  1697. Ne_1:
  1698. ;pokaz_zycia_tm
  1699.     lea    Ekran+$bd11,a1    ;zycia pierwszego
  1700.     move.w    Live1,d1
  1701.     bsr.w    Next_Znaczek
  1702.  
  1703.     tst.w    Crash_in_LevelP2
  1704.     beq.s    NoNoSubLive2
  1705.     sub.w    #1,Live2
  1706.  
  1707. NoNoSubLive2:
  1708.     tst.w    Live2
  1709.     bne.s    Ne_2
  1710.     btst    #3,PlayerTwo+1
  1711.     bne.s    computery_nie_gina_2
  1712.     move.l    PunktyDrugiego,Player2_to_High    ;dla hi score
  1713.     move.w    #1,Game_Over_Player_2
  1714.     move.w    #%1000,PlayerTwo
  1715. *    move.w    #0,Player2_game
  1716. computery_nie_gina_2:
  1717.     move.w    #4,Live2
  1718.     move.l    #0,PunktyDrugiego
  1719. Ne_2:
  1720.  
  1721. ;pokaz_zycia_tm2
  1722.     lea    Ekran+$bd1e,a1    ;zycia drugiego
  1723.     move.w    Live2,d1
  1724.     bsr.w    Next_Znaczek
  1725.  
  1726.     tst.w    Crash_in_LevelP3
  1727.     beq.s    NoNoSubLive3
  1728.     sub.w    #1,Live3
  1729. NoNoSubLive3:
  1730.     tst.w    Live3
  1731.     bne.s    Ne_3
  1732.     btst    #3,PlayerThree+1
  1733.     bne.s    computery_nie_gina_3
  1734.     move.l    PunktyTrzeciego,Player3_to_High    ;dla hi score
  1735.     move.w    #1,Game_Over_Player_3
  1736.     move.w    #%1000,PlayerThree
  1737. *    move.w    #0,Player3_game
  1738. computery_nie_gina_3:
  1739.     move.w    #4,Live3
  1740.     move.l    #0,PunktyTrzeciego
  1741. Ne_3:
  1742. ;pokaz_zycia_tm3
  1743.     lea    Ekran+$bd2b,a1    ;i trzeciego
  1744.     move.w    Live3,d1
  1745.     bsr.w    Next_Znaczek
  1746.  
  1747.  
  1748. ;!Tuuuu czy przezyles
  1749.     tst.w    Player1_game
  1750.     beq.s    .1
  1751.     tst.w    Crash_in_LevelP1
  1752.     bne    .1
  1753.     btst    #3,PlayerOne+1
  1754.     beq.s    O_K_Alive
  1755. .1
  1756.     tst.w    Player2_game
  1757.     beq.s    .2
  1758.     tst.w    Crash_in_LevelP2
  1759.     bne    .2
  1760.     btst    #3,PlayerTwo+1
  1761.     beq    O_K_Alive
  1762. .2
  1763.     tst.w    Player3_game
  1764.     bne    go_on
  1765.     tst.w    Crash_in_LevelP3
  1766.     bne    go_on
  1767.     btst    #3,PlayerThree+1
  1768.     bne    go_on
  1769. ;jezeli przezyles !
  1770. O_K_Alive:
  1771.     move.w    #0,Crash_in_LevelP1
  1772.     move.w    #0,Crash_in_LevelP2
  1773.     move.w    #0,Crash_in_LevelP3
  1774.     BSR.W    Jasno_Ciemno
  1775.     lea    Copper,a0
  1776.     move.l    a0,$dff080
  1777.     bsr    copy_tlo
  1778.     lea    LevelPass(pc),a0
  1779.     bsr    WyswietlText
  1780.     bsr    CJM
  1781.     bsr    czekay
  1782.     bsr    JCM
  1783.     addq.w    #1,Level
  1784.     cmp.w    #9,Level
  1785.     bne    no0
  1786.     move.w    #0,Level
  1787. no0
  1788.     bra    Start_Game
  1789.  
  1790. go_on:
  1791.     move.w    #0,Crash_in_LevelP1
  1792.     move.w    #0,Crash_in_LevelP2
  1793.     move.w    #0,Crash_in_LevelP3
  1794.  
  1795. ;jezeli przezyly tylko komputery to game over !
  1796. ;tylko jak sie do tego zabrac ?
  1797.     moveq    #0,d0
  1798.     btst    #3,PlayerOne+1    ;jezeli komputer to dodaje
  1799.     beq.s    C_Cont_C11
  1800.     addq.w    #1,d0
  1801.     bra.s    C_Cont_C1
  1802. C_Cont_C11:
  1803.     tst.w    Player1_game    ;nie komputer to moze niegra (zginol lub cus)
  1804.     bne.s    C_Cont_C1
  1805.     addq.w    #1,d0
  1806. C_Cont_C1:
  1807.     btst    #3,PlayerTwo+1
  1808.     beq.s    C_Cont_C22
  1809.     addq.w    #1,d0
  1810.     bra.s    C_Cont_C2
  1811. C_Cont_C22:
  1812.     tst.w    Player2_game
  1813.     bne.s    C_Cont_C2
  1814.     addq.w    #1,d0
  1815. C_Cont_C2:
  1816.     btst    #3,PlayerThree+1
  1817.     beq.s    C_Cont_C33
  1818.     addq.w    #1,d0
  1819.     bra.s    C_Cont_C3
  1820. C_Cont_C33:
  1821.     tst.w    Player3_game
  1822.     bne.s    C_Cont_C3
  1823.     addq.w    #1,d0
  1824. C_Cont_C3:
  1825.     cmp.w    #3,d0
  1826.     bge.s    Game_over_seq    ;wieksze lub rowne !
  1827.  
  1828.     BSR.W    Jasno_Ciemno
  1829.     bra.w    GameLoop
  1830.  
  1831. Game_over_seq:
  1832.     BSR.W    Jasno_Ciemno
  1833.     bsr.w    copy_tlo
  1834.     lea    Copper,a0
  1835.     move.l    a0,$dff080
  1836.  
  1837.     lea    Game_Over_Text(pc),a0
  1838.     bsr.w    WyswietlText
  1839.     tst.w    Game_Over_Player_1
  1840.     beq.s    sadassd_1
  1841.     move.w    #0,Game_Over_Player_1    ;czysci wskaznik game over
  1842.  
  1843.     move.l    Player1_to_High(pc),d0
  1844.     lea    16+GO1Txt(pc),a0
  1845.     move.w    #1,Special_P    ;tryb specjalny (tylko wrzuci liczbe
  1846.     bsr.w    Tylko_Wrzuc
  1847.  
  1848.     lea    GO1Txt(pc),a0    ;wyswietla game over pl 1
  1849.     bsr.w    WyswietlText
  1850.     bsr    CJM
  1851.     bsr    czekay
  1852.     bsr    JCM
  1853.  
  1854.     bsr    copy_tlo
  1855.     bsr    CJM
  1856.     move.l    Player1_to_High(pc),hhhhh
  1857.     bsr    hi_score_p
  1858.     bsr    JCM
  1859.  
  1860. sadassd_1:
  1861.     tst.w    Game_Over_Player_2
  1862.     beq.s    sadassd_2
  1863.     move.w    #0,Game_Over_Player_2
  1864.  
  1865.     move.l    Player2_to_High,d0
  1866.     lea    16+GO2Txt(pc),a0
  1867.     move.w    #1,Special_P
  1868.     bsr.w    Tylko_Wrzuc
  1869.  
  1870.     lea    GO2Txt(pc),a0
  1871.     bsr.w    WyswietlText
  1872. sadassd_2:
  1873.     tst.w    Game_Over_Player_3
  1874.     beq.s    sadassd_3
  1875.     move.w    #0,Game_Over_Player_3
  1876.  
  1877.     move.l    Player3_to_High,d0
  1878.     lea    16+GO3Txt(pc),a0
  1879.     move.w    #1,Special_P    ;tryb specjalny (tylko wrzuci liczbe
  1880.     bsr.w    Tylko_Wrzuc
  1881.  
  1882.     lea    GO3Txt(pc),a0
  1883.     bsr.w    WyswietlText
  1884. sadassd_3:
  1885.     bsr    CJM
  1886.     bsr    czekay
  1887.     bsr    JCM
  1888.  
  1889.     rts
  1890.  
  1891. ******
  1892. *     *
  1893. *     *
  1894. ******
  1895. *     *
  1896. *     *
  1897. *     *uch
  1898.  
  1899. Ruch:
  1900.     btst    #0,d2
  1901.     beq.s    JoyPort1
  1902. JoyPort0:
  1903.     bsr    Joystick0
  1904.     bra.s    EndRuch
  1905. JoyPort1:
  1906.     btst    #1,d2
  1907.     beq.s    Keyb
  1908. ;Joy1
  1909.     bsr    Joystick1
  1910.     bra.s    EndRuch
  1911. Keyb:
  1912.     btst    #2,d2
  1913.     beq.s    Comp1            ****
  1914. ;Keyboard
  1915.     bsr    Keyboard
  1916.     bra.w    EndRuch
  1917. Comp1:
  1918.     bsr    Last
  1919. EndRuch:    rts
  1920.  
  1921. * * * * *
  1922. ComputerMove:
  1923. * * * * *
  1924. *    %0001    Prawo
  1925. *    %0010    Lewo
  1926. *    %0100    Dol
  1927. *    %1000    Gora
  1928.  
  1929.     btst    #0,d4
  1930.     beq.s    CompLewoL
  1931. ;CompPrawoLast            ;Zderzenie z prawej
  1932.     subq.w    #1,d0    ;x-1
  1933.     addq.w    #1,d1    ;y+1
  1934.     bsr    Plot
  1935.     bne.s    DolZajety
  1936.     move.w    #%0100,d4    ;jedz w dol
  1937.     bra.w    CompRuchEnd
  1938. DolZajety:
  1939.     subq.w    #2,d1    ;poprzednio dodal 1 to teraz odjol 2
  1940.     bsr    Plot
  1941.     bne.s    Kill
  1942.     move.w    #%1000,d4    ;jedz w gore
  1943.     bra.w    CompRuchEnd
  1944. CompLewoL:
  1945.     btst    #1,d4
  1946.     beQ.s    CompDownL
  1947. ;CompLewoLast
  1948.     addq.w    #1,d0
  1949.     addq.w    #1,d1
  1950.     bsr    Plot
  1951.     bne.s    DolZajety
  1952.     move.w    #%0100,d4    ;jedz w dol
  1953.     bra.w    CompRuchEnd
  1954. CompDownL:
  1955.     btst    #2,d4
  1956.     beQ.s    CompUpL
  1957. ;CompDownLast
  1958.     subq.w    #1,d1    ;Y-1
  1959.     subq.w    #1,d0    ;x-1
  1960.     bsr    Plot
  1961.     bne.s    LewoZajete
  1962.     move.w    #%0010,d4    ;jedz w lewo
  1963.     bra.w    CompRuchEnd
  1964. LewoZajete:
  1965.     addq.w    #2,d0
  1966.     bsr    Plot
  1967.     bne.s    Kill
  1968.     move.w    #%0001,d4    ;w prawo
  1969.     bra.w    CompRuchEnd
  1970. CompUpL:
  1971.     addq.w    #1,d1
  1972.     subq.w    #1,d0
  1973.     bsr    Plot
  1974.     bne.s    LewoZajete
  1975.     move.w    #%0010,d4    ;w lewo
  1976.  
  1977. CompRuchEnd:
  1978.     moveq    #0,d2
  1979.     rts
  1980. Kill:
  1981.     move.w    #$ffff,d2
  1982.     rts
  1983.  
  1984. ComputerMove2:
  1985.  
  1986.     btst    #0,d4
  1987.     beq.s    CompLewoL2
  1988. ;CompPrawoLast            ;Zderzenie z prawej
  1989.     subq.w    #1,d0    ;x-1
  1990.     subq.w    #1,d1    ;y-1
  1991.     bsr    Plot
  1992.     bne.s    GorZajety2
  1993.     move.w    #%1000,d4    ;jedz w dol
  1994.     bra.w    CompRuchEnd
  1995. GorZajety2:
  1996.     addq.w    #2,d1    ;poprzednio dodal 1 to teraz odjol 2
  1997.     bsr    Plot
  1998.     bne.s    Kill
  1999.     move.w    #%0100,d4    ;jedz w dol
  2000.     bra.w    CompRuchEnd
  2001. CompLewoL2:
  2002.     btst    #1,d4
  2003.     beQ.s    CompDownL2
  2004. ;CompLewoLast
  2005.     addq.w    #1,d0        ;x+1
  2006.     subq.w    #1,d1        ;y-1
  2007.     bsr    Plot
  2008.     bne.s    GorZajety2
  2009.     move.w    #%1000,d4    ;jedz w gore
  2010.     bra.w    CompRuchEnd
  2011. CompDownL2:
  2012.     btst    #2,d4
  2013.     beQ.s    CompUpL2
  2014. ;CompDownLast
  2015.     subq.w    #1,d1    ;y-1
  2016.     addq.w    #1,d0    ;x+1
  2017.     bsr    Plot
  2018.     bne.s    PrawZajete2
  2019.     move.w    #%0001,d4    ;jedz w prawo
  2020.     bra.w    CompRuchEnd
  2021. PrawZajete2:
  2022.     subq.w    #2,d0    ;x-2 (pozycja przed zderzeniem)
  2023.     bsr    Plot
  2024.     bne.s    Kill
  2025.     move.w    #%0010,d4    ;w lewo
  2026.     bra.w    CompRuchEnd
  2027. CompUpL2:
  2028.     addq.w    #1,d1    ;y+1
  2029.     addq.w    #1,d0    ;x+1
  2030.     bsr    Plot
  2031.     bne.s    PrawZajete2
  2032.     move.w    #%0001,d4    ;w prawo
  2033.     bra.w    CompRuchEnd
  2034.  
  2035. Joystick0:
  2036.     move.w    $dff00a,d2        ;Port0
  2037.     bra.s    JoyStick
  2038. Joystick1:
  2039.     move.w    $dff00c,d2        ;Port0
  2040. JoyStick:
  2041.     btst    #1,d2
  2042.     beq.s    Left
  2043. ;Prawo
  2044.     btst    #1,d4
  2045.     bne.s    Last
  2046.     move.w    #%0001,d4
  2047.     addq.w    #1,d0
  2048.     bra.w    RuchEnd
  2049. Left:
  2050.     btst    #9,d2
  2051.     beq    UpDown        ;1=Lewo 0=Brak Lewa
  2052. ;Lewo
  2053.     btst    #0,d4
  2054.     bne.s    Last
  2055.     move.w    #%0010,d4
  2056.     subq.w    #1,d0
  2057.     bra.w    RuchEnd
  2058. UpDown:
  2059.     move.w    d2,d3
  2060.     lsr.w    #1,d3
  2061.     eor.w    d2,d3
  2062.     btst    #0,d3
  2063.     beq.s    Gora
  2064. ;Dol
  2065.     btst    #3,d4
  2066.     bne.s    Last
  2067.     move.w    #%0100,d4
  2068.  
  2069.     addq.w    #1,d1
  2070.     bra.s    RuchEnd
  2071. Gora:
  2072.     btst    #2,d4
  2073.     bne.s    Last
  2074.     btst    #8,d3
  2075.     beq.s    Last
  2076.  
  2077.     move.w    #%1000,d4
  2078.  
  2079.     sub.w    #1,d1
  2080.     bra.w    RuchEnd
  2081.  
  2082. Last:
  2083.     btst    #0,d4
  2084.     beQ.s    LewoL
  2085. ;PrawoLast
  2086.     addq.w    #1,d0
  2087.     bra.w    RuchEnd
  2088. LewoL:
  2089.     btst    #1,d4
  2090.     beQ.s    DownL
  2091. ;LewoLast
  2092.     subq.w    #1,d0
  2093.     bra.w    RuchEnd
  2094. DownL:
  2095.     btst    #2,d4
  2096.     beQ.s    UpL
  2097. ;DownLast
  2098.     addq.w    #1,d1
  2099.     bra.w    RuchEnd
  2100. UpL:
  2101.     subq.w    #1,d1
  2102.     bra.w    RuchEnd
  2103.  
  2104. RuchEnd:
  2105.     rts
  2106.  
  2107. *******
  2108. Plot: **
  2109. *******
  2110. ; a0 adr pocz lini na ekr
  2111. ; d0-pos x d1-pos y
  2112.  
  2113.     lea    Ekran,a0    ;Ekr start
  2114.     add.l    d3,a0
  2115.  
  2116.     lea    Ekran+2*40,a1    ;120
  2117.  
  2118.     move.w    d1,d2
  2119.     muls    #40*5,d2    ;Bajty w lini*wys
  2120.     add.l    d2,a0
  2121.     add.l    d2,a1
  2122.  
  2123.     move.w    d0,d2    ;save x
  2124.     lsr.w    #3,d2    ;/8
  2125.     not.b    d0
  2126.  
  2127. ;Check3Bitpl
  2128.     btst    d0,(a1,d2.w)
  2129.     bne.s    Zderzenie
  2130.  
  2131. ;Check4Bitpl
  2132.     add.l    #40,a1
  2133.     btst    d0,(a1,d2.w)
  2134.     bne.s    Zderzenie
  2135.  
  2136. ;Check5Bitpl
  2137.     add.l    #40,a1
  2138.     btst    d0,(a1,d2.w)
  2139.     bne.s    Zderzenie
  2140.  
  2141. ;NiemaZderzenia
  2142.     bset    d0,(a0,d2.w)
  2143.     not.b    d0
  2144.     moveq    #0,d2
  2145.     rts
  2146.  
  2147. Zderzenie:
  2148.     not.b    d0
  2149.     move.w    #$ffff,d2    ;Error Zderzenie
  2150.     rts
  2151.  
  2152.  
  2153. **** **** **** **** ****
  2154. Keyboard:
  2155. **** **** **** **** ****
  2156.  
  2157.     move.b    $bfec01,d2        ;Keyboard
  2158.  
  2159.     lea    Table,a0
  2160.     tst.b    $4e(a0)        ;prawo
  2161.     beq.s    .left
  2162. ;Prawo
  2163.     btst    #1,d4
  2164.     bne.w    Last
  2165.     move.w    #%0001,d4
  2166.     addq.w    #1,d0
  2167.     bra.w    KeybordEnd
  2168. .left
  2169.     tst.b    $4f(a0)        ;left arrow
  2170.     beq.s    .down
  2171. ;Lewo
  2172.     btst    #0,d4
  2173.     bne.w    Last
  2174.     move.w    #%0010,d4
  2175.     subq.w    #1,d0
  2176.     bra.w    KeybordEnd
  2177. .down
  2178.     tst.b    $4d(a0)        ;dóî
  2179.     beq.s    .up
  2180. ;Dol
  2181.     btst    #3,d4
  2182.     bne.w    Last
  2183.     move.w    #%0100,d4
  2184.  
  2185.     addq.w    #1,d1
  2186.     bra.s    KeybordEnd
  2187. .up
  2188. ;góra
  2189.     tst.b    $4c(a0)        ;dóî
  2190.     beq.w    Last        ;nic z powyûszych
  2191.     
  2192.     btst    #2,d4
  2193.     bne.w    Last
  2194.  
  2195.     move.w    #%1000,d4
  2196.  
  2197.     subq.w    #1,d1
  2198. KeybordEnd:
  2199.     rts
  2200. ****
  2201. *
  2202. **
  2203. *
  2204. *lash
  2205.  
  2206. RunFlash1:
  2207.     lea    GameScreenColor+18,a0
  2208.     move.l    #0,PosX
  2209.     move.w    #$0111,d3    ;kolory 1
  2210.     move.w    #2,LFlash1    ;jezeli<>to miganie (2=najpierw odejmowac)
  2211.     move.w    #16,Flash_1_loop    ;pentla colorow  (1=najpierw dodawac)
  2212.     move.w    #16*4,Flash_1_I_Loop    ;ile razy wykonac
  2213.     move.w    d3,Flash_Color_1
  2214.     rts
  2215.  
  2216. RunFlash2:
  2217.     lea    GameScreenColor+34,a0
  2218.     lea    Iff+$98+120,a1
  2219.     lea    Ekran+120,a2
  2220.     move.l    #0,PosX2
  2221.     move.w    #$0011,d3    ;kolory drugiego
  2222.     move.w    d3,Flash_Color_2
  2223.     move.w    #2,LFlash2    ;jezeli<>to miganie
  2224.     move.w    #16,Flash_2_loop    ;pentla colorow
  2225.     move.w    #16*4,Flash_2_I_Loop    ;ile razy wykonac
  2226.     rts
  2227.  
  2228. RunFlash3:
  2229.     lea    GameScreenColor+66,a0
  2230.     lea    Iff+$98+160,a1
  2231.     lea    Ekran+160,a2
  2232.     move.l    #0,PosX3
  2233.     move.w    #$0110,d3    ;kolory 3
  2234.     move.w    d3,Flash_Color_3
  2235.     move.w    #2,LFlash3    ;jezeli<>to miganie
  2236.     move.w    #16,Flash_3_loop    ;pentla colorow
  2237.     move.w    #16*4,Flash_3_I_Loop    ;ile razy wykonac
  2238.     rts
  2239.  
  2240. Flash:
  2241.     cmp.w    #1,d0
  2242.     beq.s    Flash_Add
  2243. ;Flash_Down:
  2244.     sub.w    d3,(a0)+
  2245.     addq.l    #2,a0
  2246.     sub.w    d3,(a0)+
  2247.     addq.l    #2,a0
  2248.     sub.w    d3,(a0)+
  2249.     addq.l    #2,a0
  2250.     sub.w    d3,(a0)+
  2251.  
  2252.     subq.w    #1,d1        ;Pentla (16 w dol i 16 w gore)
  2253.     bne.s    Flash_The_End
  2254.     moveq    #1,d0    ;teraz w gore
  2255.     move.w    #16,d1
  2256.     bra.s    Flash_The_End
  2257. Flash_Add:
  2258.     add.w    d3,(a0)+
  2259.     addq.l    #2,a0
  2260.     add.w    d3,(a0)+
  2261.     addq.l    #2,a0
  2262.     add.w    d3,(a0)+
  2263.     addq.l    #2,a0
  2264.     add.w    d3,(a0)+
  2265.  
  2266.     subq.w    #1,d1
  2267.     bne.s    Flash_The_End
  2268.     moveq    #2,d0    ;teraz w dol
  2269.     move.w    #16,d1    ;odnowienie pentli
  2270.  
  2271. Flash_The_End:    
  2272.     subq.w    #1,d2    ;16*odejmowac i szesn razy dod)
  2273.     bne.s    Flash_The_NOT_ALL_END
  2274.  
  2275.     moveq    #0,d0
  2276. BitCy
  2277.     btst    #14,$dff002
  2278.     bne.s    BitCy
  2279.  
  2280.     move.l    a1,$dff050        ;BLTAPT
  2281.     move.l    a2,$dff054        ;BLTDPT
  2282.     move.l    #$ffffffff,$dff044    ;BLTAFWM and LFWM
  2283.     move.l    #$9f00000,$dff040    ;BLTCON0 d=a i 0 do bltcon1
  2284.     move.l    #$00a000a0,$dff064        ;BLTAMOD i d
  2285.     move.w    #[255*64]+[320/16],$dff058    ;BLTSIZE
  2286.  
  2287.     add.w    #1,Crash    ;liczba zabitych
  2288.  
  2289.     moveq    #1,d5
  2290.     rts
  2291.  
  2292. Flash_The_NOT_ALL_END:
  2293.     moveq    #0,d5
  2294.     rts
  2295.  
  2296.  
  2297. *  *  *
  2298. Points:
  2299. *  *  *
  2300. ;To ..... ! Zamiena dana w pamieci na Dziesietna w asci !
  2301. ;dziekuje ci real destruction...
  2302.  
  2303. ;wescie:
  2304. ;    a1 adres ekranu (bez special
  2305. ;    a0 gdze wrzucac liczbe w asci
  2306. ;    d0 liczba
  2307.  
  2308.  
  2309.     lea    Hi,a0
  2310.     move.l    a0,a2
  2311. Tylko_Wrzuc
  2312.     lea    Dzes,a3    ;tabela dziesiatek (wykopanie divsa
  2313.     moveq    #0,d2
  2314.     move.l    (a3)+,d1
  2315. Dziel
  2316.     move.l    (a3)+,d1
  2317.     beq    nomore
  2318. PorLiczbe
  2319.     cmp.l    d1,d0
  2320.     blt.s    Moze        ;Gdy mniejszy
  2321.     sub.l    d1,d0
  2322.     addq.b    #1,d2
  2323.     bra.s    PorLiczbe
  2324. Moze
  2325.     move.b    d2,(a0)+    ;Wrzutka liczby
  2326.     moveq    #0,d2
  2327.     bra.s    Dziel
  2328. nomore
  2329.     tst.w    Special_P    ;czy specjalne wejscie (hi score,game over)
  2330.     beq.s    No_Special_P    ;nie to nie
  2331.     move.w    #0,Special_P
  2332.     sub.l    #5,a0
  2333.     add.b    #$30,(a0)+    ;?'0'=$30
  2334.     add.b    #$30,(a0)+
  2335.     add.b    #$30,(a0)+
  2336.     add.b    #$30,(a0)+
  2337.     add.b    #$30,(a0)+
  2338.     rts
  2339. Special_P:    dc.w    0
  2340. ;
  2341. No_Special_P:
  2342.     moveq    #0,d0
  2343.     moveq    #4,d1
  2344. More:
  2345.     lea    Fonts+$10*8,a0        ;Fonts
  2346. Offset:
  2347.     move.b    (a2)+,d0
  2348.     rol.w    #3,d0            ;*8
  2349.     add.l    d0,a0
  2350.  
  2351.     moveq    #8,d0
  2352. CopyFont:
  2353.     move.b    (a0)+,(a1)
  2354.     add.l    #40*5,a1
  2355.     subq.b    #1,d0
  2356.     bne.w    CopyFont
  2357.  
  2358.     sub.l    #8*40*5-1,a1
  2359.     dbra    d1,More
  2360.     rts
  2361.  
  2362. ;pokazuje ilosc zyc
  2363.  
  2364. Next_Znaczek:
  2365.     subq.w    #1,d1
  2366.     beq.s    Ent_Znaczek
  2367.     bmi.s    Ent_Znaczek  *to tez
  2368.     cmp.w    #5,d1
  2369.     bls.s    N_Znacz    ;nizszy,rowny
  2370.     moveq    #5,d1
  2371. N_Znacz:
  2372.     lea    Fonts+24,a0        ;znaczek zycia
  2373.     moveq    #8,d0
  2374. CopyZnaczek:
  2375.     move.b    (a0)+,(a1)
  2376.     add.l    #40*5,a1
  2377.     subq.b    #1,d0
  2378.     bne.w    CopyZnaczek
  2379.  
  2380.     sub.l    #8*40*5-1,a1
  2381.     subq.w    #1,d1
  2382.     bne.s    N_Znacz
  2383. Ent_Znaczek:    *jak i to
  2384.     rts
  2385.  
  2386. ******************************************
  2387. End:            ;(for the game) _Game_End_
  2388.  
  2389.     BSR.W    Jasno_Ciemno
  2390. ;    movem.l    (sp)+,d0-d7/a0-a6
  2391.     rts
  2392.  
  2393. ******************************************
  2394.  
  2395. KeyboardInt:
  2396.     PUSH    d2-d7/a2-a4
  2397. ;przerwanko klawiaturki
  2398.     mb    d0,Key
  2399.     lea    Table,a0
  2400.     btst    #7,d0
  2401.     bne.s    .clr
  2402.     st.b    (a0,d0.w)
  2403.     bra.s    .1
  2404. .clr
  2405.     and.w    #$7f,d0
  2406.     clr.b    (a0,d0.w)
  2407. .1
  2408.     POP    d2-d7/a2-a4
  2409.     moveq    #0,d0
  2410.     rts
  2411. Table:    ds.b    256
  2412.  
  2413.  
  2414. ;Track disk device ,but i'm not sure at all. . .  .   .    .     .      .
  2415. ;destroyed by r.the.k/r.d. of course in vitava [2*2*50*12]/2+790+[x*x-2]
  2416. ;x=2
  2417. ;written on trash'm-one by deftronic.
  2418.  
  2419. TrackDiskDevice:
  2420.     rts
  2421.  
  2422.     movem.l    d0-d7/a0-a6,-(sp)
  2423.     move.l    4.w,a6
  2424.  
  2425.     sub.l    a1,a1
  2426.     jsr    -294(a6)    ;find task (name a1)
  2427.     move.l    d0,ReadReply+16    ;?
  2428.     lea    ReadReply,a1
  2429.     jsr    -354(a6)    ;addport (port a1)
  2430.     lea    DiskIO,a1    ;?
  2431.  
  2432.     moveq    #0,d0
  2433.     moveq    #0,d1
  2434.  
  2435.     lea    TrackName,a0
  2436.  
  2437.     jsr    -444(a6)     ;open device devName,unit,ioRequest,flags a0,d0,a1,d1
  2438.  
  2439.     tst.l    d0
  2440.     bne.s    Track_Error
  2441. * * * *
  2442.     lea    DiskIO,a1
  2443.     move.l    #ReadReply,14(a1)    ;set reply port
  2444.     lea    DiskIO,a1
  2445.     move.w    #9,28(a1)    ;command: TD_MOTOR
  2446.     move.l    #0,36(a1)    ;Turn motor off
  2447.     jsr    -456(a6)    ;DoIo
  2448.  
  2449. * * * *
  2450.     lea    ReadReply,a1
  2451.     jsr    -360(a6)    ;RemPort (port a1)
  2452.     lea    DiskIO,a1
  2453.     jsr    -450(a6)    ;CloseDevice (ioRequest a1)
  2454.  
  2455. Track_Error:
  2456.     movem.l    (sp)+,d0-d7/a0-a6
  2457.     rts
  2458.  
  2459. TrackName:    dc.b    'trackdisk.device',0,0
  2460.     even
  2461. DiskIO:    blk.l    20,0
  2462. ReadReply:    blk.l    8,0
  2463.  
  2464. Col_Zmienna:    dc.w    0
  2465.  
  2466. Ciemno_Jasno:
  2467. ;To ma rozjasnic obraz do dobrych kolorow !
  2468.  
  2469.     moveq    #0,d3
  2470.     moveq    #$f,d5
  2471. Color_The_Loop:
  2472.     bsr    Wait
  2473.     lea    GameScreenColor+2,a0    ;Kolory copper (gdzie wrzucac
  2474.     lea    MintimeColor+2,a1    ;co powinno byc (skad brac
  2475.     move.w    #2,Col_Zmienna
  2476. Three_l0:
  2477.     moveq    #32,d7 ;ilosc colorow
  2478. Three_l1:
  2479.     moveq    #3,d6
  2480.     moveq    #0,d2
  2481.     moveq    #$f,d4
  2482. Three_l2:
  2483.     move.w    (a1),d3
  2484.     and.w    d4,d3
  2485.     cmp.w    d5,d3
  2486.     bpl.s    .1
  2487.     moveq    #0,d3
  2488.     bra.s    NextcC
  2489. .1
  2490.     sub.w    d5,d3
  2491. NextcC:
  2492.     add.w    d3,d2
  2493.     lsl.w    #4,d5
  2494.     lsl.w    #4,d4
  2495.     subq.w    #1,d6
  2496.     bne.s    Three_l2
  2497.  
  2498.     move.w    d2,(a0)
  2499.     addq.l    #4,a0
  2500.     addq.l    #4,a1
  2501.     lsr.w    #8,d5
  2502.     lsr.w    #4,d5
  2503.  
  2504.     subq.w    #1,d7
  2505.     bne.w    Three_l1
  2506.  
  2507.     add.l    #8,a0    ;2 dlugie slowa nastepna linia punkty
  2508.     sub.w    #1,Col_Zmienna
  2509.     bne.s    Three_l0
  2510.  
  2511.     dbf    d5,Color_The_Loop
  2512.  
  2513.     rts
  2514.  
  2515.  
  2516. Jasno_Ciemno:
  2517. ;Sciemnia obrazek...
  2518.  
  2519.     moveq    #16,d0        ;to samo 15 czy 16 16!
  2520.  
  2521. Szesna_Loop:
  2522.     bsr    Wait
  2523.     lea    GameScreenColor+2,a0 (skad brac i gdzie wrzucac
  2524.     move.w    #2,Col_Zmienna
  2525.  
  2526. Point_SLoop:
  2527.     move.w    #32,d1
  2528. Ilosc_Loop:
  2529.     move.w    #%0000000000001111,d2
  2530.     move.w    #$0001,d3
  2531.     moveq    #0,d6
  2532.     moveq    #3,d5
  2533. Three_loop:
  2534.     move.w    (a0),d4
  2535.     and.w    d2,d4
  2536.     beq.s    NieSciemniaj
  2537.     sub.w    d3,d4
  2538. NieSciemniaj:
  2539.     lsl.w    #4,d2
  2540.     lsl.w    #4,d3
  2541.     add.w    d4,d6    ;wynik
  2542.     subq.w    #1,d5
  2543.     bne.s    Three_loop
  2544.  
  2545.     move.w    d6,(a0)
  2546.     addq.l    #4,a0
  2547.  
  2548.     subq.w    #1,d1    ;ilosc kolorow
  2549.     bne.s    Ilosc_Loop
  2550.  
  2551.     add.l    #8,a0    ;2 dlugie slowa nastepna linia punkty
  2552.     sub.w    #1,Col_Zmienna
  2553.     bne.s    Point_SLoop
  2554.  
  2555.     subq.l    #1,d0    ;Sciemnianie do zera $f
  2556.     bne.s    Szesna_Loop
  2557.     rts
  2558.  
  2559. JCM:
  2560. ;Sciemnia menu.
  2561. ;d0-d6 a0
  2562.     moveq    #16-1,d7
  2563. Szesna_loopM:
  2564.     VERTICAL $90
  2565.     VERTICAL $91
  2566.     lea    ScreenColor+2,a0 (skad brac i gdzie wrzucac
  2567. Point_SLoopM:
  2568.     moveq    #16-1,d1 ;ilosc kolorow
  2569. Ilosc_LoopM:
  2570.     moveq    #%0000000000001111,d2
  2571.     moveq    #$0001,d3
  2572.     moveq    #0,d6
  2573.     moveq    #3,d5
  2574. Three_loopM:
  2575.     move.w    (a0),d4
  2576.     and.w    d2,d4
  2577.     beq.s    NieSciemniajM
  2578.     sub.w    d3,d4
  2579. NieSciemniajM:
  2580.     lsl.w    #4,d2
  2581.     lsl.w    #4,d3
  2582.     add.w    d4,d6    ;wynik
  2583.     subq.w    #1,d5
  2584.     bne.s    Three_loopM
  2585.  
  2586.     move.w    d6,(a0)
  2587.     addq.l    #4,a0
  2588.  
  2589.     dbf    d1,Ilosc_LoopM
  2590.  
  2591.     dbf    d7,Szesna_loopM    ;Sciemnianie do zera $f
  2592.     rts
  2593.  
  2594. CJM:
  2595. ;To ma rozjasnic obraz do dobrych kolorow !
  2596. ;d3-d7 a0-a1
  2597.     moveq    #0,d3
  2598.     moveq    #$f,d5
  2599. Color_The_loopM:
  2600.     bsr    Wait_S
  2601.     lea    2+ScreenColor,a0    ;Kolory copper
  2602.     lea    2+ScreenMinColor(pc),a1    ;co powinno byc
  2603.     moveq    #16-1,d7 ;ilosc colorow
  2604. Three_L1M:
  2605.     moveq    #3,d6
  2606.     moveq    #0,d2
  2607.     moveq    #$f,d4
  2608. Three_l2M:
  2609.     move    (a1),d3
  2610.     and    d4,d3
  2611.     cmp    d5,d3
  2612.     bpl.s    NextCM
  2613.     moveq    #0,d3
  2614.     bra.s    NextcCM
  2615. NextCM:
  2616.     sub    d5,d3
  2617. NextcCM:
  2618.     add    d3,d2
  2619.     lsl    #4,d5
  2620.     lsl    #4,d4
  2621.     subq    #1,d6
  2622.     bne.s    Three_l2M
  2623.  
  2624.     move    d2,(a0)
  2625.     addq.l    #4,a0
  2626.     addq.l    #4,a1
  2627.     lsr    #8,d5
  2628.     lsr    #4,d5
  2629.  
  2630.     dbf    d7,Three_L1M
  2631.  
  2632.     dbf    d5,Color_The_loopM
  2633.  
  2634.     rts
  2635.  
  2636.  
  2637. Wait:
  2638.     move.l    d0,-(sp)
  2639.     moveq    #3-1,d0        ;opoznienie w Verticalach
  2640. Wwait:
  2641.     cmp.b    #$ff,$dff006
  2642.     bne.s    Wwait
  2643. wwait0:    cmp.b    #$fe,$dff006
  2644.     bne.s    wwait0
  2645.     dbf    d0,Wwait
  2646.     move.l    (sp)+,d0
  2647.     rts
  2648. Wait_S:
  2649.     move.l    d0,-(sp)
  2650.     moveq    #1,d0
  2651. ve2    cmp.b    #$fe,$dff006
  2652.     bne.s    ve2
  2653. ve3    cmp.b    #$ff,$dff006
  2654.     bne.s    ve3
  2655.     dbf    d0,ve2
  2656.     move.l    (sp)+,d0
  2657.     rts
  2658. Czysc_Colory:
  2659. ;Poniewaz kolory sa przerzucane gdzie indziej to to tworzy kolory 0
  2660.  
  2661.     move.w    #$180,d0
  2662.     moveq    #32,d1
  2663. Rub180:
  2664.     move.w    d0,(a0)+
  2665.     move.w    #0,(a0)+
  2666.     addq.w    #2,d0
  2667.     subq.w    #1,d1
  2668.     bne.s    Rub180
  2669.     rts
  2670.  
  2671. ;*********************************
  2672. ;* POWER PACKER DECRUNCH ROUTINE *
  2673. ;*********************************
  2674. ; Resourced by Mac of Katharsis!
  2675. ;
  2676. ;przy wejsciu w a0 start bloku,w d0 dlugosc bloku
  2677. ;    w a1 dokad ma zdepakowac
  2678. ;    kod jest calkowicie relokowalny
  2679. ;
  2680.  
  2681. Power_Packer:
  2682.     cmpi.l #'PP20',(a0)    ;tylko standartowe pliki
  2683.     bne.s rets        ;nie zakodowane etc.
  2684.     lea costam(pc),a2
  2685.     move.l 4(a0),(a2)
  2686.     add.l d0,a0
  2687.     movem.l    d1-d7/a2-a6,-(sp)
  2688.     bsr.s    lbCEAE
  2689.     movem.l    (sp)+,d1-d7/a2-a6
  2690. rets
  2691.     rts
  2692. lbCEAE
  2693.     move.l a1,a2
  2694.     lea costam(pc),a5
  2695.     move.l -(a0),d5
  2696.     moveq    #0,d1
  2697.     move.b d5,d1
  2698.     lsr.l #8,d5
  2699.     add.l d5,a1
  2700.     move.l -(a0),d5
  2701.     lsr.l d1,d5
  2702.     move.b    #$20,d7
  2703.     sub.b d1,d7
  2704. lbC000EC8
  2705.     bsr.s lbC000F3A
  2706.     tst.b d1
  2707.     bne.s lbC000EEE
  2708.     moveq #0,d2
  2709. lbC000ED0
  2710.     moveq #2,d0
  2711.     bsr.s lbC000F3C
  2712.     add.w d1,d2
  2713.     cmp.w #3,d1
  2714.     beq.w lbC000ED0
  2715. lbC000EDC
  2716.     moveq #8,d0
  2717.     bsr.s lbC000F3C
  2718.     move.b    d1,-(a1)
  2719.     dbf d2,lbC000EDC
  2720.     cmp.l    a1,a2
  2721.     bcs.s    lbC000EEE
  2722.     rts
  2723. lbC000EEE
  2724.     moveq #2,d0
  2725.     bsr.s    lbC000F3C
  2726.     moveq    #0,d0
  2727.     move.b    0(a5,d1.w),d0
  2728.     move.l    d0,d4
  2729.     move.w    d1,d2
  2730.     addq.w    #1,d2
  2731.     cmp.w    #4,d2
  2732.     bne.s lbC000F20
  2733.     bsr.s lbC000F3A
  2734.     move.l d4,d0
  2735.     tst.b d1
  2736.     bne.s lbC000F0E
  2737.     moveq    #7,d0
  2738. lbC000F0E
  2739.     bsr.s    lbC000F3C
  2740.     move.w    d1,d3
  2741. lbC000F12
  2742.     moveq #3,d0
  2743.     bsr.s lbC000F3C
  2744.     add.w    d1,d2
  2745.     cmp.w    #7,d1
  2746.     beq.w    lbC000F12
  2747.     bra.s    lbC000F24
  2748. lbC000F20
  2749.     bsr.s    lbC000F3C
  2750.     move.w    d1,d3
  2751. lbC000F24
  2752.     move.b    0(a1,d3.w),d0
  2753.     move.b    d0,-(a1)
  2754.     dbf d2,lbC000F24
  2755. *    move.w    d3,$00DFF180    ;kolor decrunchu    [a ja go wykopalem]
  2756.     cmp.l    a1,a2        ;troche go zmienilem    [r the k]
  2757.     bcs.s    lbC000EC8
  2758.     rts
  2759. lbC000F3A
  2760.     moveq    #1,d0
  2761. lbC000F3C
  2762.     moveq    #0,d1
  2763.     subq.w    #1,d0
  2764. lbC000F40
  2765.     lsr.l    #1,d5
  2766.     roxl.l    #1,d1
  2767.     subq.b    #1,d7
  2768.     bne.s    lbC000F4E
  2769.     move.b    #$20,d7
  2770.     move.l    -(a0),d5
  2771. lbC000F4E
  2772.     dbf d0,lbC000F40
  2773.     rts
  2774. costam    dc.l    $090A0B0B
  2775.  
  2776.     blk.l    40,0
  2777.  
  2778. MintimeColor:
  2779.     blk.l    32,0
  2780. Mintime_Points_Color:
  2781.  dc.w    $0180,$0000,$0182,$0ddd,$0184,$0bbb,$0186,$0aaa
  2782.  dc.w    $0188,$0fff,$018a,$0fff,$018c,$0fff,$018e,$0fff
  2783.  dc.w    $0190,$00ff,$0192,$00ff,$0194,$00ff,$0196,$00ff
  2784.  dc.w    $0198,$0009,$019a,$000b,$019c,$000d,$019e,$000f
  2785.  dc.w    $01a0,$0ff0,$01a2,$0ff0,$01a4,$0ff0,$01a6,$0ff0
  2786.  dc.w    $01a8,$000a,$01aa,$00a0,$01ac,$0a00,$01ae,$00aa
  2787.  dc.w    $01b0,$0111,$01b2,$0333,$01b4,$0555,$01b6,$0666
  2788.  dc.w    $01b8,$0888,$01ba,$0aaa,$01bc,$0ccc,$01be,$0eee
  2789.  
  2790.  
  2791. MenuText:    ;   '                    '
  2792.     dc.b    0
  2793.     dc.b      3,' <REAL DESTRUCTION>',0
  2794.     dc.b     28,'    Gdynia 1992-3',0
  2795.     dc.b     70,' F1 - Player One',0
  2796.     dc.b     91,' F2 - Player Two',0
  2797.     dc.b    112,' F3 - Player Three',0
  2798.     dc.b    132,' F4 - HiScore',0
  2799.     dc.b    150,' F5 - Password ',0
  2800.     dc.b    170,' F6 - Credits',0
  2801.     dc.b    210,'F10 - Start',0
  2802.     dc.b    0,0
  2803.     even
  2804.  
  2805. ControlText:    ;   '                    '
  2806.     dc.b    0
  2807.     dc.b     60,' F1 - Joy Port 1',0
  2808.     dc.b     81,' F2 - Joy Port 0',0
  2809.     dc.b    102,' F3 - Keyboard',0
  2810.     dc.b    124,' F4 - COMPUTER',0
  2811.     dc.b    145,'*F5 - Redefine Keys',0
  2812.     dc.b    166,' F6 - No player',0
  2813.     dc.b    0,0
  2814.     even
  2815.  
  2816. WarningText:    ;   '                    '
  2817.     dc.b    0
  2818.     dc.b     40,'      Warning !',0
  2819.     dc.b     60,'    This is just',0
  2820.     dc.b     81,'    a preview of',0
  2821.     dc.b    103,'  coming full game',0
  2822.     dc.b    125,'        from',0
  2823.     dc.b    147,' <Real Destruction>',0
  2824.     dc.b    0,0
  2825.     even
  2826.  
  2827. GwiazdkaThings:    ;   '                    '
  2828.  
  2829.     dc.b    0
  2830.     dc.b    100,'   Things with *',0
  2831.     dc.b    121,'     dont work',0
  2832.     dc.b    0,0
  2833.     even
  2834.  
  2835. CreditsText0:
  2836.     dc.b    0
  2837.     dc.b     60,'    Light Cycle',0
  2838.     dc.b     85,'       is  a',0
  2839.     dc.b    110,' <Real Destruction>',0
  2840.     dc.b    132,'     Production',0
  2841.     dc.b    231,' Gdynia 1993.01.03',0
  2842.     dc.b    0,0
  2843.     even
  2844. CreditsText1:
  2845.     dc.b    0
  2846.     dc.b     99,'Credits:',0
  2847.     dc.b    120,'    Gfx:Sleeper/RD',0
  2848.     dc.b    141,'  Music:BFA/Suspect',0
  2849.     dc.b    162,'  Music:Dr.Stool/RD',0
  2850.     dc.b    183,'   Code:R.The.K./RD',0
  2851.     dc.b    0,0
  2852.     even
  2853.  
  2854. CreditsText2:
  2855.     dc.b    0
  2856.     dc.b      5,'    Instruction:',0
  2857.     dc.b     50,'Press:',0
  2858.     dc.b     75,'P     - Pause',0
  2859.     dc.b     96,'M     - Music ON/OFF',0
  2860.     dc.b    117,'L.SHIFT - Restart',0
  2861.     dc.b    138,'R.SHIFT - Speed Up',0
  2862.     dc.b    159,'SPACE - Quit Game',0
  2863.     dc.b    180,'Esc in menu for quit',0
  2864.     dc.b    201,'    to dos',0
  2865.     dc.b    0,0
  2866.     even
  2867.  
  2868. CreditsText3:    ;   '                    '
  2869.     dc.b    0
  2870.     dc.b      4,'If you wanna contact',0
  2871.     dc.b     23,' <Real Destruction>',0
  2872.     dc.b     45,'   Then write to:',0
  2873.     dc.b     66,'     [R.The.K.]',0
  2874.     dc.b    104,'  Rafal Konkolewski',0
  2875.     dc.b    125,' Nauczycielska 4/23',0
  2876.     dc.b    146,'       81-614',0
  2877.     dc.b    167,'       Gdynia',0
  2878.     dc.b    188,'       Poland',0
  2879.     dc.b    0,0
  2880.  
  2881. CreditsText4:    ;   '                    '
  2882.     dc.b    0
  2883.     dc.b      1,' Grettings fly to:',0
  2884.     dc.b      21,' BFA, Coza, Creator',0
  2885.     dc.b     42,'   Crupel Monster',0
  2886.     dc.b     63,'   Dr.Stool, Fenom',0
  2887.     dc.b     84,'  Glowa, Ifa, Kane',0
  2888.     dc.b    105,'     KWK, Locky',0
  2889.     dc.b    126,'  Malin, Michal M',0
  2890.     dc.b    147,'  Pillar, Piontal',0
  2891.     dc.b    168,'  Przemas, Rewizor',0
  2892.     dc.b    189,'SCA, Slipper, Sergey',0
  2893.     dc.b    210,'TCDS, Tetlox, Torba',0
  2894.     dc.b    231,'        XTD',0
  2895.  
  2896.     dc.b    0,0
  2897.     even
  2898.  
  2899. Lev0Text
  2900.     dc.b 0
  2901.     dc.b 160,'Loading Level ',0,0,0,0
  2902.  
  2903. LevelPass
  2904.  dc.b 0
  2905.  dc.b 120,' You may pass',0,0
  2906.  
  2907. Game_Over_Text:    ;   '                    '
  2908.     dc.b    0
  2909.     dc.b     50,' Its look like...',0
  2910.     dc.b     71,'     Game Over.',0
  2911.     dc.b    0,0
  2912.  
  2913. GO1Txt:        ;'                    '
  2914.     dc.b    0
  2915.     dc.b     92,'Player 1 -          ',0
  2916.     dc.b    0,0
  2917.  
  2918. GO2Txt:        ;'                    '
  2919.     dc.b    0
  2920.     dc.b    113,'Player 2 -          ',0
  2921.     dc.b    0,0
  2922.  
  2923. GO3Txt:        ;'                    '
  2924.     dc.b    0
  2925.     dc.b    135,'Player 3 -          ',0
  2926.     dc.b    0,0
  2927.  
  2928. Text:
  2929.     dc.b    0
  2930.     dc.b     70,'  Enter Password:'
  2931. p_text:
  2932.     dc.b    0
  2933.     dc.b    120,'    ____________    ',0,0
  2934.  
  2935. Password_Table:
  2936.  
  2937. ;Levels code
  2938.     dc.b    'alien 3_____'    ;0
  2939.     dc.b    'none________'    ;1
  2940.     dc.b    'lev2________'    ;2
  2941.     dc.b    'lev3________'    ;3
  2942.     dc.b    'lev4________'    ;4
  2943.     dc.b    'lev5________'    ;5
  2944.     dc.b    'lev6________'    ;6
  2945.     dc.b    'lev7________'    ;7
  2946.     dc.b    'lev8________'    ;8
  2947.     dc.b    'lev9________'    ;9
  2948.     dc.b    'lev10_______'    ;10
  2949.     dc.b    'MTV_________'    ;11 Special from here
  2950.     dc.b    'Loki________'    ;12
  2951.     dc.b    'R.The.K.____'    ;13
  2952.     dc.b    'Dr.Stool____'    ;14
  2953.     dc.b    'Piontal_____'    ;15
  2954.     dc.b    'Slipper_____'    ;16
  2955.     dc.b    'Shit________'    ;17
  2956.     dc.b    'fuck________'    ;18
  2957.     dc.b    'fuck off____'    ;19
  2958.     dc.b    'tcds________'    ;20
  2959.     dc.b    'Pillar______'    ;21
  2960.     dc.b    'Colombo_____'    ;22
  2961.     dc.b    'Kane________'    ;23
  2962.     dc.b    'Creator_____'    ;24
  2963.     dc.b    'SCA_________'    ;25
  2964.     dc.b    'Michal M____'    ;26
  2965.  
  2966. ilosc_chasel    equ 24+1
  2967.  
  2968. lowlevelbase:    dc.l    0
  2969. inthandle:    dc.l    0
  2970. lowlevelname:    dc.b    'lowlevel.library',0
  2971. DosName:    dc.b 'dos.library',0
  2972. Gfxname:    dc.b 'graphics.library',0
  2973. Key:    dc.b    0
  2974.  
  2975. *******************************************************************************
  2976. *                TEXTY DO HASE?L                      *
  2977. *******************************************************************************
  2978.  
  2979. ;texty passwordow
  2980. AlienTXT: ;'                    ' ;11
  2981.  dc.b    0
  2982.  dc.b     150,'    This is good.',0,0
  2983.  
  2984. EmptyT: ;'                    ' ;11
  2985.  dc.b    0
  2986.  dc.b     150,'not now',0,0
  2987.  
  2988. mtvTXT:   ;'                    ' ;11
  2989.     dc.b    0
  2990.  dc.b     110,'     I like MTV',0,0
  2991.  
  2992. LockyTXT:  ;'                    ' ;12
  2993.     dc.b    0
  2994.  dc.b     130,'    How how how...',0
  2995.  dc.b     152,' my brother is here.',0,0
  2996.  
  2997. PillarTXT:;'                    ' ;21
  2998.     dc.b    0
  2999.  dc.b     150,' Thanks for help.',0,0
  3000. * dc.b     173,'       ',0,0
  3001.  
  3002. KaneTXT ;'                    ' ;23
  3003.     dc.b    0
  3004.  dc.b     150,' Thanks for help.',0,0
  3005.  
  3006. CreatTXT ;'                    ' ;24
  3007.     dc.b    0
  3008.  dc.b    129,'!!!!!!!!!!!!!!!!!!!!',0
  3009.  dc.b    150,'     MOJE DYSKI',0
  3010.  dc.b    172,'!!!!!!!!!!!!!!!!!!!!',0,0
  3011.  
  3012.      even
  3013.  
  3014. Level0_FM:    dc.b    'dh1:sources/lightcycle/Levels/Level0.pic.pp',0
  3015. Level1_FM:    dc.b    'dh1:sources/lightcycle/levels/Level1.pic.pp',0
  3016. Level2_FM:    dc.b    'dh1:sources/lightcycle/levels/Level2.pic.pp',0
  3017. Level3_FM:    dc.b    'dh1:sources/lightcycle/levels/Level3.pic.pp',0
  3018. Level4_FM:    dc.b    'dh1:sources/lightcycle/levels/Level4.pic.pp',0
  3019. Level5_FM:    dc.b    'dh1:sources/lightcycle/levels/Level5.pic.pp',0
  3020. Level6_FM:    dc.b    'dh1:sources/lightcycle/levels/Level6.pic.pp',0
  3021. Level7_FM:    dc.b    'dh1:sources/lightcycle/levels/Level7.pic.pp',0
  3022. Level8_FM:    dc.b    'dh1:sources/lightcycle/levels/Level8.pic.pp',0
  3023. Level9_FM:    dc.b    'dh1:sources/lightcycle/levels/Level9.pic.pp',0
  3024. Level10_FM:    dc.b    'dh1:sources/lightcycle/levels/Level10.pic.pp',0
  3025.  
  3026.     even
  3027.  
  3028. ***********************************
  3029. INTB_VERTB  equ   5                 ; for vblank interrupt
  3030. _AddIntServer    EQU    -168
  3031. _RemIntServer    EQU    -174
  3032.  
  3033. StartIrq:
  3034.     IFNE    MUSIC
  3035.     jsr    mt_init
  3036.     ENDIF
  3037.  
  3038.     EXEC
  3039.     lea    VBlankServer(pc),a1
  3040.     moveq    #INTB_VERTB,d0
  3041.     JUMP    AddIntServer    ; (intNumber,interrupt)
  3042. ***********************************
  3043. StopIrq:
  3044.     EXEC
  3045.     moveq    #INTB_VERTB,d0
  3046.     lea    VBlankServer(pc),a1
  3047.     CALL    RemIntServer    ; (intNumber,interrupt)
  3048.     IFNE    MUSIC
  3049.     bsr    mt_end
  3050.     ENDIF
  3051.     rts
  3052.  
  3053. *********************************
  3054. VBlankServer:
  3055.     dc.l    0,0    ;node succ,ln_Pred
  3056. ln_type1:dc.b    2,0    ;ln_Type,ln_Prio
  3057.     dc.l    IrqName    ;ln_name
  3058.     dc.l    0    ;irq data
  3059.     dc.l    Interrupt ;irq code
  3060.  
  3061. IrqName:    dc.b    'Light Cycle Music',0
  3062. *Irq
  3063.     even
  3064. Interrupt:
  3065.     movem.l    d0-a6,-(sp)
  3066.     lea    $dff000,a5
  3067.     tst.w    Music_On
  3068.     beq.w    No_Music
  3069.  
  3070.     IFNE    MUSIC
  3071.     jsr    mt_music
  3072.     ENDIF
  3073. No_Music:
  3074. ;    cmp.b    #$91,$bfec01    ;litera m wlancza,wylancza muzyke
  3075. ;    bne.s    Koniec_Przerwania
  3076. ;    move.b    #0,$bfec01
  3077. ;    not.w    Music_on
  3078. ;Nie_Zmiana_M:
  3079. ;    tst.w    Music_On
  3080. ;    bne.s    Koniec_Przerwania
  3081. ;    clr.w    $a8(a5)    ;?
  3082. ;    clr.w    $b8(a5)
  3083. ;    clr.w    $c8(a5)
  3084. ;    clr.w    $d8(a5)
  3085. ;    move.w    #$f,$96(a5)
  3086.  
  3087. Koniec_Przerwania:
  3088.     movem.l    (sp)+,d0-a6
  3089.     rts
  3090.  
  3091. Music_On:
  3092.     dc.w    -1
  3093.  
  3094. Seek:        MOVEL    Dos
  3095.         move.l    Handle(pc),d1
  3096.         moveq    #0,d2
  3097.         moveq    #OFFSET_END,d3
  3098.     CALL    Seek
  3099.         move.l    Handle(pc),d1
  3100.         moveq    #0,d2
  3101.         moveq    #OFFSET_BEGINNING,d3
  3102.     JUMP    Seek
  3103.  
  3104. FreeMem:
  3105.     tst.l    AllocMem
  3106.     beq.s    .nofree
  3107.  
  3108.     move.l    AllocMem(pc),a1
  3109.     move.l    FileSize(pc),d0
  3110.     EXEC
  3111.     CALL    FreeMem
  3112.     clr.l    AllocMem
  3113. .nofree
  3114.     rts
  3115.  
  3116. *    *    *    *    *    *    *    *    *
  3117. *    *    *    *    *    *    *    *    *
  3118.  
  3119.     IFNE    MUSIC
  3120.     include    'PT2.1A_Play+.s'
  3121.     ENDIF
  3122.  
  3123.     IF    SAVE=1
  3124. Fonts
  3125.     incbin    'slp2.fnt'
  3126.     ENDIF
  3127.  
  3128. *******************************************************************************
  3129.  
  3130. *                DANE:
  3131.  
  3132. *******************************************************************************
  3133.  
  3134. Dzes    ;tabela dziesiatek (wykopanie divsa
  3135.  dc.l 100000,10000,1000,100,10,1,0,0
  3136.  
  3137. No_Shift_Table:
  3138. ;Tabela kodow
  3139. ;bez shifta !
  3140.  DC.B    $FF,'`',$FD,'1',$FB,'2',$F9,'3',$F7,'4',$F5,'5',$F3,'6',$F1,'7'
  3141.  DC.B    $ef,'8',$ed,'9',$eb,'0',$e9,'-',$e7,'=',$e5,'\',$7b,'?',$df,'q'
  3142.  DC.B    $dd,'w',$db,'e',$d9,'r',$d7,'t',$d5,'y',$d3,'u',$d1,'i',$cf,'o'
  3143.  DC.B    $cd,'p',$cb,'[',$c9,']',$bf,'a',$bd,'s',$bb,'d',$b9,'f',$b7,'g'
  3144.  DC.B    $b5,'h',$b3,'j',$b1,'k',$af,'l',$ad,';',$ab,'''',$a9,'@',$9f,'<'
  3145.  DC.B    $9d,'z',$9b,'x',$99,'c',$97,'v',$95,'b',$93,'n',$91,'m',$8f,','
  3146.  DC.B    $8d,'.',$8b,'/',$4b,'[',$49,']',$47,'`',$45,'*',$85,'7',$83,'8'
  3147.  DC.B    $81,'9',$6b,'-',$a5,'4',$a3,'5',$a1,'6',$43,'+',$c5,'1',$c3,'2'
  3148.  DC.B    $c1,'3',$e1,'0',$87,'.',$7f,' '
  3149.  
  3150. Shift_Table:
  3151. ;Tabela kodow
  3152. ;z shiftem
  3153.  DC.B    $FF,'~',$FD,'!',$FB,'"',$F9,'#',$F7,'$',$F5,'%',$F3,'^',$F1,'&'
  3154.  DC.B    $EF,'*',$ED,'(',$EB,')',$E9,'_',$E7,'+',$E5,'|',$7B,'?',$DF,'Q'
  3155.  DC.B    $DD,'W',$DB,'E',$D9,'R',$D7,'T',$D5,'Y',$D3,'U',$D1,'I',$CF,'O'
  3156.  DC.B    $CD,'P',$CB,'[',$C9,']',$BF,'A',$BD,'S',$BB,'D',$B9,'F',$B7,'G'
  3157.  DC.B    $B5,'H',$B3,'J',$B1,'K',$AF,'L',$AD,':',$AB,'"',$A9,'?',$9F,'>'
  3158.  DC.B    $9D,'Z',$9B,'X',$99,'C',$97,'V',$95,'B',$93,'N',$91,'M',$8F,'<'
  3159.  DC.B    $8D,'>',$8B,'?',$4B,'[',$49,']',$47,'`',$45,'*',$85,'7',$83,'8'
  3160.  DC.B    $81,'9',$6B,'-',$A5,'4',$A3,'5',$A1,'6',$43,'+',$C5,'1',$C3,'2'
  3161.  DC.B    $C1,'3',$E1,'0',$87,'.',$7F,' '
  3162.  
  3163. *    %0001    Prawo
  3164. *    %0010    Lewo
  3165. *    %0100    Dol
  3166. *    %1000    Gora
  3167.  
  3168. AllocMem:    dc.l    0
  3169. FileSize:    dc.l    0
  3170. LastRuch:    dc.w    %0100
  3171. PosX:        dc.w    50
  3172. PosY:        dc.w    90
  3173. LastRuch2:    dc.w    %0001
  3174. PosX2:        dc.w    51
  3175. PosY2:        dc.w    185
  3176. LastRuch3:    dc.w    %0010
  3177. PosX3:        dc.w    100
  3178. PosY3:        dc.w    70
  3179.  
  3180. Lev_LastRuch1:    dc.w    0
  3181. Lev_PosX1:        dc.l    0
  3182. Lev_LastRuch2:    dc.w    0
  3183. Lev_PosX2:        dc.l    0
  3184. lev_LastRuch3:    dc.w    0
  3185. Lev_PosX3:        dc.l    0
  3186.  
  3187. *    %0001    JoyPort0
  3188. *    %0010    JoyPort1
  3189. *    %0100    Keyboard (Cursors+SPACE)
  3190. *    %1000    Computer (or computer help)
  3191. PlayerOne:    dc.w    %0010 ;w grze
  3192. PlayerTwo:    dc.w    %1000
  3193. PlayerThree:    dc.w    %1000
  3194.  
  3195. Live1:    dc.w    0
  3196. Live2:    dc.w    0
  3197. Live3:    dc.w    0
  3198.  
  3199. Player1_game:    dc.w    1    ;1 gra zero nie gra
  3200. Player2_game:    dc.w    1
  3201. Player3_game:    dc.w    1
  3202.  
  3203. Player1_Rgame:    dc.w    1    ;1 gra zero nie gra
  3204. Player2_Rgame:    dc.w    1
  3205. Player3_Rgame:    dc.w    1
  3206.  
  3207. Crash_in_LevelP1:    dc.w    0    ;jerzeli zniszczyles sie w tercji
  3208. Crash_in_LevelP2:    dc.w    0    ;to na koniec odejmuje zycia
  3209. Crash_in_LevelP3:    dc.w    0
  3210.  
  3211. Game_Over_Player_1:    dc.w    0    ;1 game over in this Level
  3212. Game_Over_Player_2:    dc.w    0
  3213. Game_Over_Player_3:    dc.w    0
  3214.  
  3215. LFlash1:    dc.w    0
  3216. LFlash2:    dc.w    0
  3217. LFlash3:    dc.w    0
  3218. Flash_1_loop:    dc.w    0
  3219. Flash_1_I_Loop:    dc.w    0
  3220. Flash_Color_1:    dc.w    0
  3221. Flash_2_loop:    dc.w    0
  3222. Flash_2_I_Loop:    dc.w    0
  3223. Flash_Color_2:    dc.w    0
  3224. Flash_3_loop:    dc.w    0
  3225. Flash_3_I_Loop:    dc.w    0
  3226. Flash_Color_3:    dc.w    0
  3227.  
  3228. Hi:            blk.b    6,0
  3229. PunktyPierwszego:    dc.l    0
  3230. PunktyDrugiego:        dc.l    0
  3231. PunktyTrzeciego:    dc.l    0
  3232.  
  3233. Player1_to_High:    dc.l    0    ;dla hi score
  3234. Player2_to_High:    dc.l    0
  3235. Player3_to_High:    dc.l    0
  3236.  
  3237. Level:    dc.w    0    ;numer Levela
  3238. Crash:    dc.w    0
  3239. MenuEnter: dc.w    0
  3240.  
  3241. DosBase:    dc.l    0
  3242. Handle:        dc.l    0
  3243.  
  3244.  
  3245. Speed_tm:    dc.w    2
  3246. Old_DMA:    dc.w    0
  3247. oldcop:        dc.l    0
  3248. opz        dc.w    0
  3249. Password_NR:    dc.w    0    ;znaleziony password
  3250. PasswordNr:    dc.w    0 ;zmienna pomocnicza
  3251. Password_Adr:    dc.l    0 ;adres do porownania
  3252. Shift:    dc.b    0    ;0-puszczony 1-wcisniety
  3253.     even
  3254. LoadAdr:    ds.b    30000    ;na podw spakowany iff
  3255.  
  3256.         SECTION        'COPPER',DATA_C
  3257.  
  3258.  
  3259. ***************************************
  3260. Copper:
  3261.     dc.w    $1fc,0
  3262.     dc.w    $0100,%0100001000000000    ;Bptlcontrol reg.
  3263.     dc.w    $0102,$0000    ;Hor-Scroll
  3264.     dc.w    $0104,$0000    ;Sprite/Gfx priorit
  3265.     dc.w    $0108,$0078    ;Modulo    (Odd)
  3266.     dc.w    $010a,$0078    ;Modulo    (Exen)
  3267.     dc.w    $008e,$2981    ;DiwStrt
  3268.     dc.w    $0090,$29c1    ;DiwStop
  3269.     dc.w    $0092,$0038
  3270.     dc.w    $0094,$00d0
  3271.  
  3272. BitplanAdres
  3273.     dc.w    $00e0,$0006    ;1    ;Btpl Adr.
  3274.     dc.w    $00e2,$0000
  3275.     dc.w    $00e4,$0006    ;2
  3276.     dc.w    $00e6,$2800
  3277.     dc.w    $00e8,$0006    ;3
  3278.     dc.w    $00ea,$5000
  3279.     dc.w    $00ec,$0006    ;4
  3280.     dc.w    $00ee,$7800
  3281.  
  3282. ;Clear Sprites
  3283.  dc.l $1200000,$1220000,$1240000,$1260000
  3284.  dc.l $1280000,$12a0000,$12c0000,$12e0000
  3285.  dc.l $1300000,$1320000,$1340000,$1360000
  3286.  dc.l $1380000,$13a0000,$13c0000,$13e0000
  3287. ScreenColor:
  3288.  dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3289.  dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3290.     dc.l    -2
  3291.  
  3292. GameCopper:
  3293.     dc.w    $1fc,0
  3294.     dc.w    $0100,$5200    ;Bptlcontrol reg.
  3295.     dc.w    $0102,$0000    ;Hor-Scroll
  3296.     dc.w    $0104,$0000    ;Sprite/Gfx priorit
  3297.     dc.w    $0108,$00a0    ;Modulo    (Odd)
  3298.     dc.w    $010a,$00a0    ;Modulo    (Exen)
  3299.     dc.w    $008e,$2981
  3300.     dc.w    $0090,$29c1
  3301.     dc.w    $0092,$0038
  3302.     dc.w    $0094,$00d0
  3303.  
  3304. BitplanADR:
  3305.     dc.w    $e0,0,$e2,0
  3306.     dc.w    $e4,0,$e6,0
  3307.     dc.w    $e8,0,$ea,0
  3308.     dc.w    $ec,0,$ee,0
  3309.     dc.w    $f0,0,$f2,0
  3310.     dc.w    $f4,0,$f6,0
  3311.  
  3312. ;clear sprites
  3313.  dc.l $1200000,$1220000,$1240000,$1260000,$1280000,$12a0000,$12c0000,$12e0000
  3314.  dc.l $1300000,$1320000,$1340000,$1360000,$1380000,$13a0000,$13c0000,$13e0000
  3315.  
  3316. GameScreenColor:    ;nie wazne bierze kolory z obrazka !
  3317.  
  3318.  dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3319.  dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3320.  dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3321.  dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3322.  
  3323. *    dc.w    $3001,$fffe
  3324. *    dc.w    $0180,$0fff
  3325.  
  3326.     dc.w    $ffdf,$fffe    ;colory dolu i punktow
  3327.     dc.w    $1001,$fffe
  3328. Points_Color:
  3329.  dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  3330.  dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  3331.  dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  3332.  dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  3333.  
  3334.     dc.l    -2
  3335.  
  3336.  
  3337.     IFNE    SAVE
  3338. Tlo2
  3339.     incbin    'tlo2+.pic'
  3340.     IFNE    MUSIC
  3341. mt_data
  3342.     incbin    'mod.hoi_trance'
  3343. ;    incbin    'mod.voice from rv-125'
  3344. ;    incbin    'mod.soviet dog'
  3345.     ENDIF
  3346.  
  3347.     ENDIF
  3348.  
  3349.         SECTION    'SCREEN',BSS_C
  3350.     ds.b    40*20
  3351. Ekran:
  3352.     ds.b    40*256*5
  3353.     ds.b    40*20
  3354.  
  3355.         SECTION    'SCREEN',BSS_C
  3356. Iff:            ;gdzie dekompresowac
  3357.     ds.b    40*256*5
  3358.     ds.b    40*20
  3359.  
  3360. *    *    *    *    *    *    *    *    *
  3361.  
  3362.             ;DOS INCLUDE
  3363. _CurrentDir:    equ    -126
  3364. _Open:    equ    -30
  3365. _Close:    equ    -36
  3366. _Read:    equ    -42
  3367. _Write:    equ    -48
  3368. _Lock:    equ    -84
  3369. _UnLock:    equ    -90
  3370. _Examine:    equ    -102
  3371. OFFSET_END    equ    1
  3372. OFFSET_BEGINNING    equ    -1
  3373. _Seek    EQU    -66
  3374.  
  3375. ;EXEC
  3376. _AllocMem    EQU    -198
  3377. _FreeMem    EQU    -210
  3378. _OpenLibrary    EQU    -552
  3379. _CloseLibrary    EQU    -414
  3380. _OldOpenLibrary:    equ    -408
  3381.  
  3382.